999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VB可視化窗體的趣味(讓屏幕都動起來)

2015-06-25 21:30:32宋舶平
人間 2015年8期
關鍵詞:程序用戶

摘要:眾所周知,VB是一種可視化的編程工具,可視化的編程工具總會讓學習者更容易理解編程中的一些更為負責的東西。而編程又被一般人群望而卻步,其實編程是一件非常有意思的事情。結合學生們的一些想法,想到了很久以前的一些惡作劇,廢了一些力氣寫了下面的代碼以提高編程初學者對編程的興趣

文獻標識碼:A

文章編號:1671-864X(2015)03-0199-02

一、總體構想

將整個屏幕的圖像復制到本程序的Form1窗口內,制造一個虛假的屏幕圖像。

Form1 窗口會最大化并不斷抖動,遮住其他任何程序窗口。由于本程序窗口最大化,四周的邊界空白區為黑色,足以以假亂真,讓用戶相信這就是屏幕圖像。然后告訴用戶一個假消息:Windows 檢測到你的顯示器未放平,這種狀態的時間已很長了,已導致顯示器屏幕抖動,情況嚴重時會爆炸。

時間(默認30秒)未到前,用戶無法使用開始菜單和任務管理器。時間到后,Form1 窗口縮小,允許用戶結束本程序。

程序有2個窗體:Form1 和 Form2,Form1是啟動窗體:

二、form1窗體

' ' Form1 窗體:

----------------------------------------------------------------

' 在 Form1 上放置控件:Timer1、Picture1

' 在屬性窗口將 Form1 的 BorderStyle 屬性設置為 0,其他控件及屬性無需進行任何設置

' 以下是 Form1 代碼

Dim ctT1 As Single

Public ctCi As Long, ctT As Single '

Private Declare Function GetWindowDC Lib "user32" (ByVal hWnd As Long) As Long

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As RasterOpConstants) As Long

Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hdc As Long) As Long

Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Sub Form_Load()

ctT = 30 '指定時間(秒),時間到了后才允許退出程序??筛鶕约合埠眯薷臑楦L的時間

Timer1.Enabled = True: Timer1.Interval = 100

Me.WindowState = 2 '最大化窗口

'Me.WindowState = 0 ''****調試代碼,Form1 窗口最大化會導致調試困難,調試完畢應刪除此語句

Me.BackColor = 0

Call CopyScreen

ctT1 = Timer

End Sub

Private Sub Form_Activate()

Static Ci As Long

If Ci = 0 Then Form2.Show 1

Ci = 1

End Sub

Private Sub Timer1_Timer()

Dim X As Single, Y As Single, S As Single

S = Timer - ctT1

Form2.Label2.Caption = "時間:" & Format(S, "0.0") & " 秒"

If S < ctT Then '----將窗口設置為最前面,阻止用戶使用任務管理器等其他程序

Call WinInTop(Me.hWnd, True)

Else '------------到了指定時間(秒)后,允許退出程序

If Me.WindowState <> 0 Then

Me.WindowState = 0

Me.Move Screen.Width * 0.1, Screen.Height * 0.1, Screen.Width * 0.8, Screen.Height * 0.8

End If

Form2.Label1.ForeColor = 0

Form2.Label1.Caption = vbCrLf & vbCrLf & " 這是一個玩笑,你的顯示器不會發生任何問題。" & vbCrLf & vbCrLf & vbCrLf & vbCrLf & " 單擊“退出”結束本程序。"

Form2.Label2.Caption = "哈哈,一個玩笑"

Form2.Command1.Visible = False: Form2.Command2. Visible = True

End If

S = Screen.TwipsPerPixelX * 10 '抖動最大幅度:10 個像素

Randomize

X = (0.5 - Rnd) * S: Y = (0.5 - Rnd) * S

Picture1.Move X, Y

If Me.WindowState <> 2 Then Exit Sub '當 Form1 最大化時才讓 Form2 也一起抖動

Form2.Move (Screen.Width - Form2.Width) * 0.5 + X, (Screen.Height - Form2.Height) * 0.5 + Y

End Sub

Private Sub CopyScreen()

'------復制整個屏幕到 Picture1

Dim dl As Long, nHwnd As Long, nWinDC As Long, nW As Long, nH As Long

nHwnd = 0

nWinDC = GetWindowDC(nHwnd) '屏幕設備場景句柄

nW = Screen.Width: nH = Screen.Height

Picture1.Move 0, 0, nW, nH

Picture1.AutoRedraw = True: Picture1.BorderStyle = 0

nW = nW /Screen.TwipsPerPixelX: nH = nH /Screen. TwipsPerPixelY

dl = BitBlt(Picture1.hdc, 0, 0, nW, nH, nWinDC, 0, 0, vbSrcCopy)

dl = ReleaseDC(nHwnd, nWinDC) '釋放設備場景:成功返回為1,否則為0

End Sub

Private Sub WinInTop(nWnd As Long, Optional InTop As Boolean)

Const HWND_NoTopMost = -2 '取消在最前

Const HWND_TopMost = -1 '最上

Const SWP_NoSize = &H1 'wFlags 參數

Const SWP_NoMove = &H2

Const SWP_NoZorder = &H4

Const SWP_ShowWindow = &H40

Const SWP_HideWindow = &H80

Dim nIn As Long

If InTop Then nIn = HWND_TopMost Else nIn = HWND_ NoTopMost

SetWindowPos nWnd, nIn, 0, 0, 0, 0, SWP_NoSize + SWP_ NoMove

End Sub

三、 Form2 窗體

' 在 Form2 上放置控件:Command1、Command2、Label1、Label2

' 以下是 Form2 代碼

Dim ctExit As Boolean

Private Sub Form_Load()

Dim S As Single

Me.Icon = LoadPicture(): Me.Caption = "Windows 警告"

Me.Move Screen.Width * 0.2, Screen.Height * 0.3, Screen.Width * 0.6, Screen.Height * 0.4

S = Me.TextHeight("A")

Command1.Caption = "確定(&Y)": Command2.Caption = "退出(&E)"

Command1.Move Me.ScaleWidth - S * 7, Me.ScaleHeight -S * 3, S * 6, S * 2

Command2.Move Command1.Left, Command1.Top, S * 6, S * 2

Label1.BackStyle = 0: Command2.Visible = False

Label1.Font.Size = 12: Label2.Font.Size = 12

Label1.Move S, S, Me.ScaleWidth - S * 2, Me.ScaleHeight

Label2.Move S, Command1.Top + Command1.Height * 0.2

Label2.AutoSize = True

Call Info End Sub

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

'不要用 Click 事件

Form1.ctCi = Form1.ctCi + 1

Call Info

End Sub

Private Sub Info()

Dim Str1 As String, nStr As String

Select Case Form1.ctCi

Case 0

Str1 = "警告!" & vbCrLf & vbCrLf

nStr = " Windows 檢測到你的顯示器未放平,這種

狀態的時間已很長了,已導致顯示器屏幕抖動,情況嚴重時會爆炸。"

Case 1

Label1.ForeColor = RGB(0, 0, 255)

Str1 = "再次警告!" & vbCrLf & vbCrLf

nStr = " 你的顯示器仍然未放平,仍有爆炸的危險。"

Case 2

Label1.ForeColor = RGB(255, 0, 255)

Str1 = "再次再次警告!!" & vbCrLf & vbCrLf

nStr = " 請在顯示器底座的右下面墊一張厚度為 2毫米的紙,不然有爆炸的危險。"

Case 3

Label1.ForeColor = RGB(255, 0, 0)

Str1 = "再次警告?。。? & vbCrLf & vbCrLf

nStr = " 右方太高!" & vbCrLf & vbCrLf & " 請在顯示器底座的左下面墊一張厚度為 1 毫米的紙,不然有爆炸的危險。"

Case Else

Label1.ForeColor = RGB(255, 0, 0)

Str1 = "嚴重警告?。。?!" & vbCrLf & vbCrLf nStr = " 顯示器仍然未調整好。"

End Select

Label1.Caption = Str1 & nStr & vbCrLf & vbCrLf & "請在 " & Form1.ctT & " 秒鐘內調整好顯示器!顯示器調整好后,請單擊“確定”。"

End Sub

Private Sub Command2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)'

結束程序:不要用 Click 事件

ctExit = True

Unload Me: Unload Form1

End Sub

Private Sub Form_Unload(Cancel As Integer)

If Not ctExit Then Cancel=1

End Sub

猜你喜歡
程序用戶
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 91精品亚洲| 久久综合丝袜日本网| 日韩高清无码免费| 亚洲中久无码永久在线观看软件| 激情综合图区| 91亚洲视频下载| 51国产偷自视频区视频手机观看| 人妻91无码色偷偷色噜噜噜| 久久精品人人做人人综合试看 | 国产导航在线| 午夜国产理论| 91久久偷偷做嫩草影院免费看| av尤物免费在线观看| 亚洲精品老司机| 午夜成人在线视频| 亚洲欧州色色免费AV| 日韩 欧美 小说 综合网 另类| 久久综合亚洲色一区二区三区 | 亚洲成人在线网| 国产一区三区二区中文在线| 久久国产拍爱| 亚洲欧美自拍中文| 亚洲第一中文字幕| 在线观看无码av免费不卡网站| 日本成人精品视频| 蜜芽一区二区国产精品| 1级黄色毛片| 国产极品美女在线| 午夜视频www| 国内丰满少妇猛烈精品播| 国产成人毛片| 国产91特黄特色A级毛片| 国产在线日本| 久久综合色88| 国产网友愉拍精品视频| 亚洲精品自产拍在线观看APP| 青青青国产视频| 欧美 亚洲 日韩 国产| 中文字幕在线一区二区在线| 老司机精品一区在线视频 | 免费一极毛片| a毛片在线| 男人天堂亚洲天堂| 国产成人无码AV在线播放动漫| 国产手机在线小视频免费观看| 人人看人人鲁狠狠高清| 在线看片免费人成视久网下载| 狠狠色丁婷婷综合久久| 久久精品国产电影| 国产午夜人做人免费视频| 人妻精品全国免费视频| 日韩av高清无码一区二区三区| 久久香蕉国产线看观看精品蕉| 亚洲天堂自拍| 日本道综合一本久久久88| 免费全部高H视频无码无遮掩| 国产91全国探花系列在线播放| 成人午夜视频免费看欧美| 久久免费观看视频| 国产精品永久在线| swag国产精品| AV色爱天堂网| igao国产精品| 国产黄网站在线观看| 色综合五月| 亚洲欧美日韩中文字幕一区二区三区| 亚洲乱伦视频| 亚洲精品国产综合99久久夜夜嗨| 国产美女91呻吟求| 无码人妻免费| 无码一区中文字幕| 青青草国产免费国产| 国产va欧美va在线观看| 波多野结衣无码AV在线| 久久综合色88| 一级黄色片网| 国产办公室秘书无码精品| 国产黑丝视频在线观看| 国产精品女熟高潮视频| www.亚洲一区| 天堂网亚洲系列亚洲系列| 国产成人欧美|