| ÍøÕ¾Ê×Ò³ | JAVAÎÄÕ | AppServers | Web¿ª·¢ | Ó¦Óÿª·¢ | ×ÊÔ´ÏÂÔØ | ÂÛ̳
    ÏëѧºÃ±à³Ì£¬Ñ§ºÃÍâÓïºÜÖØÒª  [enadd  2006Äê12ÔÂ25ÈÕ]        
ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø ÁªÏµÕ¾³¤
ÄúÏÖÔÚµÄλÖ㺠±à³Ì±Ê¼ÇÍø >> Ó¦Óÿª·¢ >> vb >> ´°Ìå >> ÎÄÕÂÕýÎÄ
vb´°Ìå±à³Ì    ÈÈ      ¡¾×ÖÌ壺С ´ó¡¿
vb´°Ìå±à³Ì
×÷Õߣº-    ÎÄÕÂÀ´Ô´£º-    µã»÷Êý£º    ¸üÐÂʱ¼ä£º2006-6-10

¸Ä±ä ListIndex¶ø²»·¢Éú Click ʼþ
    ÔÚÐÞ¸Ä Combo »ò Listview µÄListIndex ʱ£¬ »á·¢Éú Click ʼþ£¬ ÏÂÃæµÄº¯Êý¿ÉÒÔ×èÖ¹¸Ãʼþ¡£
    ÉùÃ÷£º
Private Declare Function SendMessage Lib _
"user32" Alias "SendMessageA" (ByVal _
hWnd As Long, ByVal wMsg As Long, ByVal _
wParam As Long, lParam As Any) As Long
Const CB_GETCURSEL = &H147
Const CB_SETCURSEL = &H14E
Const LB_SETCURSEL = &H186
Const LB_GETCURSEL = &H188
    º¯Êý£º
Public Function SetListIndex(lst As Control, _
ByVal NewIndex As Long) As Long
¡¡
If TypeOf lst Is ListBox Then
Call SendMessage(lst.hWnd, _
LB_SETCURSEL, NewIndex, 0&)
SetListIndex = SendMessage(lst.hWnd, _
LB_GETCURSEL, NewIndex, 0&)
ElseIf TypeOf lst Is ComboBox Then
Call SendMessage(lst.hWnd, _
CB_SETCURSEL, NewIndex, 0&)
SetListIndex = SendMessage(lst.hWnd, _
CB_GETCURSEL, NewIndex, 0&)
End If
End Function
µ÷Õû Combo ÏÂÀ­²¿·ÖµÄ¿í¶È
    ÉùÃ÷£º
Private Declare Function SendMessage Lib _
"USER32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const CB_GETDROPPEDWIDTH = &H15F
Private Const CB_SETDROPPEDWIDTH = &H160
Private Const CB_ERR = -1
    º¯Êý£º
' È¡µÃ Combo ÏÂÀ­µÄ¿í¶È
' ¿ÉÒÔÀûÓøú¯Êý±ÈÀý·Å´ó»òËõС¿í¶È
Public Function GetDropdownWidth(cboHwnd As Long) As Long
Dim lRetVal As Long
lRetVal = SendMessage(cboHwnd, CB_GETDROPPEDWIDTH, 0, 0)
If lRetVal <> CB_ERR Then
GetDropdownWidth = lRetVal
'µ¥Î»Îª pixels
Else
GetDropdownWidth = 0
End If
End Function
'ÉèÖà Combo ÏÂÀ­µÄ¿í¶È
'µ¥Î»Îª pixels
Public Function SetDropdownWidth(cboHwnd As _
Long, NewWidthPixel As Long) As Boolean
Dim lRetVal As Long
lRetVal = SendMessage(cboHwnd, _
CB_SETDROPPEDWIDTH, NewWidthPixel, 0)
If lRetVal <> CB_ERR Then
SetDropdownWidth = True
Else
SetDropdownWidth = False
End If
End Function
ComboµÄ×Ô¶¯²éѯ¼¼Êõ
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const CB_FINDSTRING = &H14C
Private Sub Combo1_Change()
Dim iStart As Integer
Dim sString As String
Static iLeftOff As Integer
iStart = 1
iStart = Combo1.SelStart
If iLeftOff <> 0 Then
Combo1.SelStart = iLeftOff
iStart = iLeftOff
End If
sString = CStr(Left(Combo1.Text, iStart))
Combo1.ListIndex = SendMessage(Combo1.hwnd, _
B_FINDSTRING, -1, ByVal CStr(Left( _
ombo1.Text, iStart)))
¡¡
If Combo1.ListIndex = -1 Then
iLeftOff = Len(sString)
combo1.Text = sString
End If
Combo1.SelStart = iStart
iLeftOff = 0
End Sub
    ¾²Ì¬±äÁ¿ iLeftOff Ö¸¶¨ÁË×Ö·û³¤¶È¡£
×Ô¶¯Ñ¡Ôñ Text µÄÄÚÈÝ
    ÔÚʹÓà VFP µÄÓ¦ÓýøÐмÈëʱ£¬Ã¿½øÈëÒ»¸ö¼Èë¿ò£¬¾Í×Ô¶¯Ñ¡Ôñ¸Ã¿òÖеÄËùÓÐÄÚÈÝ¡£ÀûÓÃÒÔϵĴúÂ룬Ҳ¿ÉʵÏÖÀàËÆµÄ¹¦ÄÜ¡£
Private Sub MyTextBox_GotFocus()
AutoSelect MyTextBox
End Sub
¡¡
Sub AutoSelect(SelObject As Control)
SelObject.SelStart = 0
If TypeOf SelObject Is MaskEdBox Then
SelObject.SelLength = Len(SelObject.FormattedText)
Else
If TypeOf SelObject Is TextBox Then
SelObject.SelLength = Len(SelObject.Text)
End If
End If
End Sub
²¶×½ MouseExit ʼþ
    MouseDown¡¢MouseUp¡¢MouseMove¡£VB ËÆºõÌṩÁËºÜºÃµÄ Mouse ʼþ¡£µ«ºÃÏó»¹È±ÉÙʲô£¡¶Ô£¡»¹²î MouseExit£¨Êó±êÒÆ³ö£©Ê¼þ¡£ÔÚ VB ÖУ¬ÎÒÃÇÒª²¶×½ MouseExit ʼþ£¬±ØÐëÓà API º¯Êý£º
Private Declare Function SetCapture Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
    È»ºó£¬ÎÒÃÇ¿ÉÒÔÔڿؼþ£¨ÒÔ Picture1 ΪÀý£©µÄ MouseMove ʼþÉϼÓÉÏÒÔÏ´úÂ룺
Dim MouseExit As Boolean
MouseOver = (0 <= X) And (X <="Picture1.Width)" And (0 <="Y)" And (Y <="Picture1.Height)<Br"> If MouseExit Then
........
SetCapture Picture1.hWnd
Else
........
ReleaseCapture
End If
ÈçºÎÈÃÎı¾¿òÊäÈëÍêºó,Ö±½ÓÌøÈëÏÂÒ»ÐÐ?
    ÎÒÃÇÔÚ±àÖÆ³ÌÐòµÄʱºò£¬ÌرðÊÇÊý¾Ý¿âÈí¼þ£¬¾­³£»áÓöµ½ÕâÑùÒ»¸öÎÊÌ⣺ÔÚÎı¾¿òÖÐÊäÈëÍêºó£¬Óû§Ï°¹ßÐԵİ´Ï»سµ¼ü¡£µ«ÊÇϵͳ¡°àÖ¡±µÄÒ»Éù£¬²¢Ã»ÓÐÏóÏëÏóÄÇÑùÌøÈëÏÂÒ»ÐлòÕ߯äËûµÄʲô¡£ÄÇôÄܲ»ÄÜÈóÌÐòÔÚÊäÈëÍêºó¸ÉÆäËûµÄÊÂÄØ£¿ÊÔÒ»ÊÔÏÂÃæµÄ´úÂë°É¡£
Sub Text1_keyPress(KeyAscii As Integer)
¡¡
If KeyAscii=13 Then
SendKeys"{tab}"
End If
End Sub
ÈçºÎÇ¿ÖÆÎļþ¶Ô»°¿òÔٴζÁÈ¡ÕýÈ·µÄ´ÅÅÌ?
    Èç¹û¹¹ÔìÁËÒ»¸öÒÔͨÓöԻ°¿òΪģÐ͵ļòµ¥¶Ô»°¿ò(ͨ³£Ó¦Ê¹ÓÃͨÓöԻ°¿òµÄOCX),»á·¢ÏÖÔÙ´ÎÑ¡ÔñÈíÅÌÇý¶¯Æ÷²¢²»Êµ¼Ê.ÔٴζÁÅÌ,¸Ä±äµ½CÅÌ,²¢ÔÙ´ÎÑ¡ÔñAÅÌ.Ö»ÊÇʹËü¶ÁÐÂÈíÅÌÖеÄĿ¼.
    ÎªÁ˽â¾öÕâ¸öÎÊÌâ,ÔÚÒ»¸ö°´Å¥µÄ´úÂë¶ÎÖмÓÈëÒÔÏ´úÂë:
drive1.refresh
dir1.refresh
file1.refresh
VBµÄOPEN¶Ô»°¿ò¿Ø¼þͼʾ¹¦ÄÜÀ©³ä
°²»Õ Áõ³É
    Visual Basic For Windows£¨VB£©ÌṩÁ˷ḻµÄ¿Ø¼þ£¬µ«ÆäÌṩµÄ¹«ÓöԻ°¿ò¿Ø¼þÔÚ´ò¿ªÎļþʱ£¨ÀýÈ磪£®BmpºÍ£ª£®PcxµÈ£©²»ÄÜÏÔʾÎļþÄÚÈݼ´Í¼Ïñ£¬±¾Îĸø³öÁËÒ»¸öʵÀý£¬¿ÉÒÔÄ£ÄâһЩͼÐÎÈí¼þ°üÔÚ´ò¿ªÎļþµÄͬʱÏÔʾͼÏñ£¬Ä£ÄâºÍÀ©³äOPEN¿Ø¼þ¹¦ÄÜ¡£
    ÎªÄ£ÄâµÄÀ©³äOPEN¹¦ÄÜ£¬ÏÂÃæ¸ø³öÁËÒ»¸öÍêÕûµÄVB³ÌÐò£¬ÊµÏÖ·½·¨ÈçÏ£º
Ò»¡¢½¨Á¢´°Ìå
    Ê×ÏȽ¨Á¢Ò»¸ö´°Ì壨´°ÌåÃûΪOPNFILE£©£¬´°ÌåÉϰüº¬Çý¶¯Æ÷ÁÐ±í¡¢Ä¿Â¼ÁÐ±í¡¢ÎļþÁÐ±í¡¢Á½¸öÃüÁî°´Å¥£¨È·ÈÏ¡¢È¡Ïû£©ºÍÏÔʾӰÏñµÄ¿Ø¼þ£¨picture»òimage£©£¬ÏÂÃæÊÇÕâ6¸ö¿Ø¼þµÄ½¨Á¢·½·¨ºÍÓйØÊôÐԵĸı䡣
    1¡¢DirvelistBoxÇý¶¯Æ÷ÁÐ±í¿Ø¼þ
    Ë«»÷Çý¶¯Æ÷ÁÐ±í¿Ø¼þ£¬ÔÚ´°ÌåÉϵ÷×¼¿Ø¼þµÄλÖ㬿ؼþÃû³ÆÎª¡°Drive1¡±¡£
    2¡¢DirlistBoxĿ¼ÁÐ±í¿Ø¼þ
    Ë«»÷Ŀ¼ÁÐ±í¿Ø¼þ£¬ÔÚ´°ÌåÉϵ÷×¼¿Ø¼þµÄλÖ㬿ؼþÃû³ÆÎª¡°Dirl¡±
    3¡¢FilelistBoxÎļþÁÐ±í¿Ø¼þ
    Ë«»÷ÎļþÁÐ±í¿Ø¼þ£¬ÔÚ´°ÌåÉϵ÷×¼¿Ø¼þµÄλÖúͳߴ磬¿Ø¼þÃû³ÆÎª¡°Filel¡±£¬Ð޸ġ°Pattern¡±ÊôÐÔΪ¡°*.bmp, *.pcx¡±¡£
    4¡¢Command ButtomÃüÁî°´Å¥¿Ø¼þ
    Ë«»÷ÃüÁî°´Å¥¿Ø¼þ£¬½¨Á¢ÃüÁî°´Å¥£¬µÚÒ»¸öÈ¡ÃûΪCommand1£¬ÐÞ¸ÄCaptionÊôÐÔΪ¡°È·ÈÏ¡±£¬µÚ¶þ¸öÈ¡ÃûΪCommand2£¬ÐÞ¸ÄCaptionÊôÐÔΪ¡°È¡Ïû¡±¡£
    5¡¢ÏÔʾӰÏñµÄ¿Ø¼þ
    ¼È¿ÉÒÔÑ¡picture¿Ø¼þ£¬Ò²¿ÉÑ¡image¿Ø¼þÏÔʾͼÏñ£¬ÒÔimage¿Ø¼þΪÀý¡£Ë«»÷image¿Ø¼þ£¬µ÷×¼¾ØÐοòµÄ´óСºÍλÖã¬È¡ÃûΪimagel£¬ÉèÖÃstrtchÊôÐÔ¡£strech£½falseʱ£¬Í¼ÐÎÒÔÔ­³ß´çÏÔʾ¡£
¶þ¡¢Ê¼þ¹ý³ÌµÄ½¨Á¢
    1¡¢Çý¶¯Æ÷¸ü¸Äʼþ¹ý³Ì
    Sub Drive£­change£¨£©
    ¢ÙDirl£®Path£½Drivel£®Drive
    ¢ÚChDrive Drivel£®Drive
    End Sub
    ÆäÖТٵ±Çý¶¯Æ÷·¢Éú¸ü¸Äʱ£¬¸Ä±äĿ¼·¾¶£»¢Ú¸ü¸Ä·¾¶¡£
    2¡¢Ä¿Â¼¸ü¸Äʼþ¹ý³Ì
    Sub Dirl change£¨£©
    Filel£®Path£½Dirl£®path
    End Sub
    ¸Ãʼþ¹ý³ÌÊǶÔĿ¼·¢Éú¸ü¸Äʱ£¬×÷³öÎļþ·¾¶¸ü¸ÄµÄÏìÓ¦¡£
    3¡¢ÎļþÁÐ±íµ¥»÷ʼþ
    Sub Filel£­click£¨£©
    Imagel£®picture£½loadpicture£¨Filel.path£«¡±£Ü¡±£«Filel.FileName£©
    End Sub
    µ¥»÷ÈÎһͼÐÎÎļþÃûʱ£¬ÔÚimage¿Ø¼þ¿òÉÏÏÔʾͼÏñ¡£
    4¡¢ÃüÁî°´Å¥¿Ø¼þ
    Sub Command1£­click£¨£©
    F1¡ç£½Filel£®path£«¡±£Ü¡±£«FileName
    End
    End Sub
    Sub Comª²mand2£­click£¨£©
    F1¡ç£½¡± ¡±
    End Sub
    F1¡çΪѡÔñÎļþÃû³Æ£¬¹©Èí¼þʹÓã¬ÈôÓû§µ¥»÷¡°È¡Ïû¡±°´Å¥£¬F1¡çΪ¿Õ´®¡£
    µ¥»÷Çý¶¯Æ÷Ãû¿ÉÒԸıäÇý¶¯Æ÷£¬µ¥»÷Ŀ¼ÁбíÖÐijһĿ¼¿ÉÒÔ¸ü¸ÄĿ¼£¬µ¥»÷ijһͼÐÎÎļþ¿ÉÒÔÏÔʾͼÐΣ¬ÔÚÎļþÁбíÖа´¡°¡ü¡±»ò¡°¡ý¡±¼ü£¬¿ÉÒÔËæ×ÅÎļþÃûµÄ±ä»¯£¬Í¼Ïñ¿òÖеÄͼÐÎÒ²ËæÖ®·¢Éú¸ü¸Ä¡£
    F1¡ç¿ÉÒÔ¹©Ó¦ÓóÌÐòµ÷Óã¬ÆäÖаüº¬Çý¶¯Æ÷Ãû¡¢Ä¿Â¼ºÍÎļþÃû¡£
VBÍø¸ñÖÐÊäÈëÊý¾Ý
ɽ¶« ÖÜÇì±ó
    VISUAL BASICÌṩµÄÍø¸ñ¿ØÖÆ£¨Grid£©Ö÷ÒªÊÇÓÃÀ´Ö±¹ÛµØÊä³öÊý¾Ý£¬µ«²»ÄÜÊäÈëÊý¾Ý£¬Ê¹ÓÃÆðÀ´ºÜ²»·½±ã¡£Äܲ»ÄÜÏòÍø¸ñÖÐÊäÈëÊý¾ÝÄØ£¿±ÊÕßÌá³öÁËÁ½ÖÖ½â¾ö·½·¨£¬¹©´ó¼Ò²Î¿¼£º
·½·¨Ò»£º
    ¸ÄÐ´Íø¸ñµÄKeyPressʼþ£¬ÔÚÿ´ÎÓкϷ¨×Ö·ûÊäÈëʱ£¬°ÑGridµÄTextÏîºÍÊäÈë×Ö·ûÁ¬½Ó¡£ÕâÖÖ·½·¨È±µãÊÇ£ºÒ»´úÂë½Ï¸´ÔÓ£¬ÐèÒª´¦Àí¸÷ÖÖASCII×Ö·ûÐÅÏ¢£»¶þÊÇͨ¹ý±à³ÌÖ»ÄÜʵÏÖºÜÉٵı༭¹¦ÄÜ£¬ÈçÓÃÍ˸ñ¼üɾ³ýǰһ×Ö·û£¬ÓÃDel¼üɾ³ýËùÓÐ×Ö·û£»ÈýÊÇÕâÖÖ·½·¨²»ÄÜÊäÈ뺺×Ö£¬Ê¹ÓÃÆðÀ´Êܵ½ºÜ´óµÄÏÞÖÆ¡£
·½·¨¶þ£º
    ÀûÓÃÒ»Îı¾¿ò×÷Ϊ»º³å£¬ÊµÏֱ༭¹¦ÄÜ¡£µ±Íø¸ñ¸Ä±äÐÐÁÐʱ£¬°ÑÍø¸ñµ±Ç°ÐÐÁеÄÄÚÈÝ´«µÝ¸øÎı¾¿ò£»µ±Íø¸ñÖÐÓÐASCII×Ö·û²úÉúʱ£¬°ÑÊäÈë½¹µãÉèÖÃΪÎı¾¿ò£¬²¢°ÑÊäÈëµÄASCII×Ö·ûË͸øÎı¾¿ò£»µ±±à¼­ÍêÎı¾¿òµÄÄÚÈÝʱ£¬°´Enter¼ü»òTAB¼ü£¬°ÑÎı¾¿òµÄÄÚÈÝË͸øÍø¸ñµÄµ±Ç°ÐÐÁУ¬²¢°ÑÊäÈë½¹µãÉèÖÃÎªÍø¸ñ¡£ÈçϳÌÐòËùʾ£¨ÆäÖÐTextlΪÎı¾¿ò£¬LabellΪ±êÇ©£¬GridlÎªÍø¸ñ£©£º
Option Explicit
Const EnterAsc£½13
Const TabAsc£½9
Private Sub Form£­Load£¨£©
Labell£®Caption£½¡±ÇëÊäÈ롱
End Sub
Private Sub Gridl£­KeyPress£¨KeyAscii As Integer£©
Text1£®StFocus
Textl£®SelStart£½0
If KeyAscii £¼£¾ EnterAsc And KeyAscii £¼£¾ TabAsc Then
SendKeys Chr £¨KeyAscii£©
End IF
End Sub
Private Sub Gridl£­RowColChange£¨£©
Textl£®Text£½Grid1£®Text
End Sub
Private Sub Text1£­KeyPress£¨KeyAscii As Integer£©
If KeyAscii£½EnterAsc Then
Grid1£®SetFocus
KeyAscii£½0
End If
End Sub
Private Sub Text1£­LostFocus£¨£©
Grid1£®Text£½Text1£®Text
End Sub
Visual Basic ÖÐÎı¾¿ò´¦Àí¼¼Çɼ¯ÝÍ
ÁõÇ¿
    ÔÚVisual BasicÖУ¬Îı¾¿ò£¨TextBox£©ÊÇ×î³£ÓõĿؼþ£¬ÊìÁ·ÔËÓÃÎı¾¿òÊÇ¿ª·¢³ö¸ßÖÊÁ¿µÄÓ¦ÓóÌÐòµÄ»ù´¡¡£±ÊÕßÔÚ´ÓÊÂÓ¦ÓóÌÐò¿ª·¢ÖУ¬ÃþË÷³öÓйØÎı¾¿òµÄÓ¦Óü¼ÇÉ£¬Ð´³öÀ´ÓëVB°®ºÃÕß¹²Ïí¡£
1¡¢ÉèÖÃÖ»¶ÁÎı¾¿ò¡£
    ÓÐЩʱºòÔÚ´°¿ÚÏÔʾһ¶ÎÐÅÏ¢£¬µ«ÓÖ²»Ï£ÍûÓû§È¥¸Ä±äËü£¬ÔõÑùʵÏÖÎı¾µÄÖ»¶ÁÄØ£¿Ê×ÏÈ£¬ÎÒÃÇ¿ÉÒÔÀûÓñêÇ©¿ò£¨ label £©µÄÖ»¶ÁÊôÐÔ£¬ÒÔ±êÇ©À´´úÌæÎı¾¿òÒÔʵÏÖÖ»¶ÁÊôÐÔ£¬µ«Ò²¿ÉÒÔÓÃС³ÌÐòʵÏÖÕæÕýµÄÎı¾¿òµÄÖ»¶Á¡£
        Sub Text1_KeyPress (keyascii As Integer)
        keyascii = 0
        End Sub
    »òÕßÒ²¿ÉÒÔÓÃsendkey·½·¨Ê¹Îı¾¿òʧȥ½¹µã£¬ÈçÒÔϳÌÐò£º
        Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer)
        SendKeys "{tab}"
        End Sub
2¡¢ÏÞ¶¨Îı¾¿òµÄÊäÈëÄÚÈݺ͸ñʽ¡£
    ÒÔϳÌÐò¿ÉÒÔʵÏÖÏÞ¶¨Îı¾¿òÖ»ÄÜÊäÈëÊý×Ö£º
        Sub Text1_KeyPress (keyascii As Integer)
        If keyascii <48 Or keyascii> 57 Then
        Beep
        Beep
        johny@nease.net
        keyascii = 0
        End If
        End Sub
    ÈôÏëÏÞ¶¨Îı¾¿òÊäÈë¸ñʽ£¬¿ÉÒÔʹÓÃVBµÄFORMATº¯Êý£¬Ò²¿ÉÒÔʹÓÃרҵ°æµÄÆÁ±Î¿Ø¼þ(Masked Edit)£¬Í¨¹ýÉ趨ÆÁ±Î¿Ø¼þµÄMaskÊôÐÔ¿ÉÒÔ¶ÔÎı¾¿òµÄÊäÈë¸ñʽ×÷¾«È·¿ØÖÆ¡£
¡¡
3¡¢ÎªTextBox ´´½¨¿ì½Ý¼ü¡£
    VB¹æ¶¨£¬Ìí¼ÓÔÚ´°ÌåÉϵĿؼþ¾ùÔÚÆäTabindex ÊôÐÔÖмÇÔØÆä¼ÓÔØË³Ðò£¬³ÌÐòÔËÐÐʱ½¹µã°´Tabindex ÊôÐԹ涨µÄ˳ÐòÔڿؼþ¼äÌø×ª¡£¶øÎªÁ˼ò»¯²Ù×÷£¬¿ÉVBÖÐΪÈκξßÓÐ captionµÄÊôÐԵĿØÖÆ´´½¨¿ì½Ý¼ü£¬Õâͨ¹ýcaption ÊôÐÔÖÐÔÚÏë×÷Ϊ¿ì½Ý¼üµÄ×Öĸǰ¼Ó&ºÅʵÏÖ¡£µ«ÓÐÒ»¸öÎÊÌâÖµµÃ×¢Ò⣬¶øÀàËÆÎı¾¿òÕâÑùµÄ¿Ø¼þÎÞ caption ÕâÑùµÄÊôÐÔ£¬Õâʱ¿É½«±êÇ©ÓëÎı¾¿òͬʱʹÓá£Îª lable´´½¨¿ì½Ý¼ü£¬±êÇ© Tabindex ÊôÐÔÉèÖñÈÎı¾¿òС1£¬ÓÖÒòΪlabel ²»ÄܽÓÊÕ°´µã£¬½¹µã»á×Ô¶¯ÌøÖÁÎı¾¿ò¡£ÕâÏ൱ÓÚΪÎı¾¿ò´´½¨ÁË¿ì½Ý¼ü¡£¾ßÌå²½ÖèÈçÏ£º
    £¨1£© Ê×ÏÈ»æÖƱêÇ©£¬ÔÙ»æÖÆÎı¾¿ò¡£»òËæÒâ»æÖÆ¸÷ÖÖ¿ØÖÆ£¬½«±êÇ© Tabindex ÊôÐÔÉèÖñÈÎı¾¿òС1
    £¨2£© ÔÚ±êÇ©µÄcaption ÊôÐÔÖÐʹÓá°&¡±ºÅÉ趨¿ì½Ý¼ü
    ÕâÑù¾ÍÏ൱ÓÚΪÎı¾¿òÉ趨ÁË¿ì½Ý¼ü£¬µ±Ä㰴ϱêÇ©¿òµÄ¿ì½Ý¼üʱ£¬½¹µã¾Í»áÌøÖÁÎı¾¿òÉÏ¡£
¡¡
4¡¢ÔÚÉè¼ÆÊ±ÊµÏÖÎı¾¿ò»»ÐС£
    ¶ÔÓÚÎı¾¿ò£¬ÔÚÉè¼ÆÊ±properties ´°¿Ú²»ÄÜÊäÈë»»Ðзû£¬µ«¿ÉÒÔÔÙ³ÌÐòÖ´ÐÐʱÓôúÂëÀ´»»ÐУ¬¼´Ê¹Óà ASCII×Ö·ûµÄ13ºÍ10£¬ÈçÏÂÁÐС³ÌÐò¾Í¿É½«Á½ÐÐÎı¾·ÅÈëÎı¾¿ò£º
        Sub form_load( )
        NL=chr(13)+chr(10)
        text1.text=¡°my name is ¡±& NL & ¡° liu qiang¡±
        End sub
¡¡
5¡¢´´½¨¿ÚÁîÎı¾¿ò¡£
    ´´½¨¿ÚÁîÎı¾¿ò¿ÉÓÃÉèÖÃÊôÐԵķ½·¨£¬Ò²¿ÉÒÔͨ¹ýµ÷ÓÃWINDOWSµÄAPIÓ¦Óú¯Êý½Ó¿ÚÀ´ÊµÏÖ¡£Ê×ÏÈ£¬Îı¾¿òµÄÊôÐÔ PasswordcharºÍmaxlength ¿ÉÓÃÀ´ÉèÖÿÚÁî¿ò¡£ÆäÖÐ Passwordchar Ö¸¶¨Îı¾¿òÏÔʾµÄ×Ö·û£¬ÈçÖ¸¶¨¡°*¡±£¬ÔòÔÚÎı¾¿òÄÚÏÔʾ¡°*¡±£¬MaxlengthÈ·¶¨Îı¾¿òÖÐÄÜÊäÈ뼸¸ö×Ö·û¡£³¬¹ýMaxlengthÒÔºó£¬Îı¾¿ò·¢³ö¾¯¸æÉù£¬²»ÄܽÓÊÕ¸ü¶àµÄ×Ö·û¡£ÈôʹÓÃWINDOWSÓ¦Óú¯Êý½Ó¿Ú£¬¿ÉÓÃGetWindowLong¡¢SetWindowsLongºÍSendMessageµÈ½Ó¿Úº¯ÊýÀ´ÊµÏÖ£¬ÓÐÐËȤµÄ¶ÁÕ߿ɲéÔÄWindows APIº¯ÊýÊÖ²á»òVBµÄÁª»ú°ïÖúÎļþ£¬ÕâÀï¾Í²»Ò»Ò»×¸ÊöÁË¡£
·ÀÖ¹Îı¾¿Ø¼þÖеIJ¿·Ö¹ö¶¯
Ì· ÎÌ
    Windows APIµÄSendMessageº¯Êý¿ÉÒÔÓÃÀ´ÏòVisualBasic¿Ø¼þÖз¢ËÍÏûÏ¢£¬ÀýÈçÏòÎı¾¿ò¿Ø¼þÉÏ·¢ËÍÏûÏ¢¡£±¾ÎĽéÉÜÈçºÎÀûÓøú¯Êý·ÀÖ¹Îı¾¿ò¿Ø¼þÖеIJ¿·ÖÎı¾¹ö¶¯£¬¼´¸Ã¿Ø¼þÖв»Äܹö¶¯µÄ²¿·Ö²»Äܱ»Óû§¿´¼û¡£
·¢ËÍÏûÏ¢µ½Îı¾¿ò¿Ø¼þ
    Visual BasicÖеÄÎı¾¿ò¿Ø¼þ¾ÍÊÇÒ»¸ö×îС»¯µÄ×Ö´¦Àí³ÌÐò¡£µ±¸ÃÎı¾¿Ø¼þµÄMultiLineÊôÐÔ±»ÉèÖÃΪTrueµÄʱºò£¬ÔòÎı¾¿ÉÒÔ×Ô¶¯»»ÐУ»µ±ÔÚÎı¾¿ò¿Ø¼þÖмüÈëÁËÐí¶àÎı¾Ê±£¬¿Ø¼þÖеÄÎı¾»áÏòÉϹö¶¯¡£ÕâʱÎı¾¾Í±äµÃ¿´²»µ½ÁË£¬µ«ÕâЩÎı¾Êµ¼ÊÉÏÈÔÈ»ÔڿؼþÖСª¡ªËüÃDz¢Ã»Óб»É¾³ý¡£
    Windows APIµÄSendMessageº¯Êý¿ÉÒÔÓÃÀ´·ÀÖ¹Îı¾¿ò¿Ø¼þÖеÄÎı¾¹ö¶¯Òò¶ø³¬³öÎÒÃǵÄÊÓÏß¡£µ±´´½¨¸ÃÎı¾¿ò¿Ø¼þʱ£¬ËüµÄ¿Í»§ÇøÓò¸ñʽ»¯ÎªÒ»¸ö¾ØÐΣ¨¸ÃÇøÓò¾ÍÊǼüÈëÎı¾µÄµØ·½£©£¬¿ÉÒÔ¸ø¸Ã¿Ø¼þ·¢ËÍEM_SETRECTNPÏûÏ¢£¬¶Ô¸Ã¾ØÐÎÇøÓò½øÐÐÏÞÖÆ£¬ÒÔÔÚÎı¾¿òµÄ¿Í»§ÇøÓòÖÐÖ¸¶¨Ò»¸öÌØ¶¨ÇøÓò¡£
    ÔÚÏÂÃæµÄÑùÀý³ÌÐòÖУ¬ÎÒÃÇÏ£ÍûÎı¾¿Ø¼þµÄºóÒ»°ëÔ­·â²»¶¯µØ±£³ÖÍêÕû£¬¼´²»Ï£ÍûÎı¾¹ö¶¯¶ø³¬³öÊÓÏß¡£¿ÉÒÔ´ÓÎı¾¿ò¿Ø¼þµÄHeightÊôÐÔÖÐÌáÈ¡³öËüµÄ¸ß¶È£¬²¢½«¸ÃÖµ³ýÒÔ2£¬µÃµ½¸ÃÎı¾¿ò¿Ø¼þºóÒ»°ëµÄ×ø±ê¡£È»ºó½«¸Ã½á¹û´«µÝ¸øSendMessageº¯Êý£¬¸æËßEM_SETRECTNP·ÀÖ¹¸Ã¾ØÐÎÇøÓò¹ö¶¯¡£
    ÓÐЩ³ÌÐòÔ±¿ÉÄÜ»áÏ£ÍûʹÓÃEM_SETRECTÏûÏ¢´úÌæEM_SETRECTNPÏûÏ¢¡£µ«ÊÇ£¬Ê¹ÓÃEM_SETRECTÏûÏ¢»áÍ£Ö¹Windows¶Ô¸Ã¸ñʽ»¯¾ØÐÎÇøÓòÖеÄÎı¾µÄÖØÐ»æÖÆ£¬µ¼ÖÂÎı¾¿ò¿Ø¼þÖеÄÎı¾»á¿´²»µ½¡£
¡¡
ÑùÀý³ÌÐò
    ¸Ã³ÌÐòÏÔʾÁËÈçºÎÁÙʱ¶³½áÒ»¸öÎı¾¿ò¿Ø¼þÖеÄÌØ¶¨²¿·Ö£¬¸Ã²¿·Ö°üº¬µÄÎı¾²»Äܹö¶¯£¬Òò¶ø²»»á³¬³öÊÓÏßÖ®Íâ¡£
    1.ÔÚVisualBasicÖпªÊ¼Ò»¸öÐµĹ¤³Ì£¬²ÉÓÃȱʡµÄ·½·¨½¨Á¢Form1¡£
    2.½«Èçϳ£Á¿ºÍÉùÃ÷Óï¾äÌí¼Óµ½Form1µÄͨÓÃÉùÃ÷²¿·ÖÖУ¨×¢Òâ¸ÃÉùÃ÷Óï¾äÐèÒªÊéдÔÚÒ»ÐÐÄÚ£©£º
Private Declare Function SendMessage Lib "User"
(ByVal hWnd As Integer, ByVal wMsg As Integer,
ByVal wParam As Integer, lParam As Any) As Long
Const WM_USER = &H400
Const EM_SETRECTNP = WM_USER + 4
Const EM_SETRECT = WM_USER + 3
    ¶ÔÓÚ32λ»·¾³ÏÂʹÓÃVisual Basic5.0µÄÓû§£¬ÐèÒª½«ÈçÏÂÉùÃ÷Óï¾äÌí¼Óµ½Form1µÄͨÓÃÉùÃ÷²¿·ÖÖУº
Private Declare Function SendMessage Lib "user32"
Alias "SendMessageA" (ByVal hwnd As Long, ByVal
wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const EM_SETRECTNP = &HB4
Const EM_SETRECT = &HB3
    3.½«ÈçÏ´úÂëÌí¼Óµ½Form1µÄForm_LoadʼþÖУº
Private Sub Form_Load()
Text1.Text = " Õâ ÊÇ ÎÒ ÃÇ Ï£ Íû ÏÔ Ê¾ ³ö À´ µÄ µÚ Ò» ¶Î"
Text1.Text = Text1.Text & " Ëü λ ÓÚ ÎÄ ±¾ ¿ò ¿Ø ¼þ ÖÐ"
Text1.Text = Text1.Text & Chr$(13) & Chr$(10) & " Õâ ÊÇ µÚ ¶þ ¶Î£¬ ÎÒ ÃÇ"
Text1.Text = Text1.Text & " Ï£ Íû ½« Ö® ¶³ ½á ÒÔ Ê¹ ÎÄ ±¾ ²» ÄÜ ¹ö ¶¯ "
End Sub
    4. ½«ÈçÏ´úÂëÌí¼Óµ½Form1µÄClickʼþÖУº
Private Sub Form_Click()
Dim R As RECT
Dim X As Long
ScaleMode = 3
R.Left = 0
R.Top = 0
R.Right = Text1.Width
R.Bottom = Text1.Height / 2
X = SendMessage(Text1.hWnd, EM_SETRECTNP, 0, R)
End Sub
    5.´´½¨Ò»¸öеÄÄ£¿é¡£²ÉÓÃȱʡµÄ·½·¨½¨Á¢Module1.Bas¡£
    6.½«ÈçÏÂTYPE½á¹¹Ìí¼Óµ½Module1.BasÖУº
Type RECT
Left As Integer
Top As Integer
Right As Integer
Bottom As Integer
End Type
    ¶ÔÓÚ32λ»·¾³ÏÂʹÓÃVisual Basic 5.0µÄÓû§£¬ÐèÒª½«ÈçÏÂTYPE½á¹¹Ìí¼Óµ½Module1.BasÖУº
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
    7.ÔÚForm1ÉÏÌí¼ÓÒ»¸öÎı¾¿ò¿Ø¼þ£¬²ÉÓÃȱʡµÄ·½·¨½¨Á¢Text1£¬½«ÆäMultiLineÊôÐÔÉèÖÃΪTrue¡£
    °´ÏÂF5À´Ö´ÐиóÌÐò£¬ÎÒÃÇ¿ÉÒÔ¿´µ½Îı¾¿òÏÔʾÔÚForm1ÉÏ¡£ÔÚ´°ÌåÉϵ¥»÷Ò»´ÎÊó±ê£¬½«ÐµÄÎı¾¼üÈëµ½¸ÃÎı¾¿ò¿Ø¼þÖС£ÕâʱÎÒÃÇ¿ÉÒÔ×¢Òâµ½£¬µ±ÎÒÃÇÔÚÎı¾¿ò¿Ø¼þµÄ¿ªÍ·´¦¼üÈëеÄÎı¾Ê±£¬ÔÚÎı¾¿ò¿Ø¼þϰ벿·ÖµÄÎı¾²»»á¹ö¶¯¡£
    Èç¹ûÎÒÃǽ«EM_SETRECTÏûÏ¢Ìæ´úEM_SETRECTNPÏûÏ¢·¢Ë͸øÎı¾¿ò£¬ÔÙ´ÎÔËÐиóÌÐò£¬ÕâʱÎÒÃǻᷢÏÖ£¬Îı¾¿òµÄϰ벿·ÖÏÔʾ²»³öÀ´£¬¾¡¹Üʵ¼ÊÉÏÎı¾ÈÔÈ»ÊÇ´æ´¢ÔڿؼþÖеġ£
·ÀÖ¹Óû§±à¼­Îı¾¿ò¿Ø¼þÖеÄÄÚÈÝ
Ì· ÎÌ
    Visual BasicÖеÄÎı¾¿ò¿Ø¼þÔÊÐíÓû§ÔÚÆäÖмüÈëÎı¾£¬ÒÔ±ãÔÚ³ÌÐòÖÐʹÓá£Ïà·´£¬³ÌÐòÔ±¿ÉÄÜ»áÏ£ÍûÏÔʾһЩÎı¾µ«²»Ï£ÍûÓû§±à¼­¸ÃÎı¾¡£±¾ÎĽéÉÜÁËÈçºÎ´´½¨Ö»¶ÁµÄÎı¾¿ò¿Ø¼þµÄÄÚÈÝ¡£
ʹһ¸öÎı¾¿ò¿Ø¼þÖ»¶Á
    ÔÚVisual BasicÖУ¬Èç¹ûÎı¾¿ò¿Ø¼þµÄMultiLineÊôÐÔÉèÖÃΪTrue£¬Îı¾½«»á×Ô¶¯µØ»»Ðе½ÏÂÒ»ÐС£ÁíÍ⣬Èç¹ûÎı¾¿ò¿Ø¼þµÄScrollBarsÊôÐÔÉèÖÃΪ3-Both£¨»òÕß1-Vertical£¬»òÕß2-Horizontal£©£¬Óû§»¹Äܹ»¹ö¶¯¿Ø¼þÖеÄÄÚÈÝ¡£
    ³ÌÐòÔ±ÒªÏëʵÏÖÎı¾¿ò¿Ø¼þÖеÄÎı¾²»¿É±à¼­£¬¿É½«Îı¾¿ò¿Ø¼þÖеÄÄÚÈÝÉèÖÃΪֻ¶Á״̬£¬Õâ¿ÉÒÔͨ¹ýʹÓÃMicrosoft Windows Ó¦ÓóÌÐò±à³Ì½Ó¿Ú£¨API£©µÄSendMessageº¯ÊýÀ´ÊµÏÖ¡£SendMessageº¯Êý¿ÉÒÔÓÃÀ´·¢ËÍÒ»¸öEM_SETREADONLYÏûÏ¢µ½Îı¾¿ò¿Ø¼þÖУ¬Õ⽫ʹÎı¾¿ò¿Ø¼þ±äΪֻ¶Á¡£
    ÒªÔÚ³ÌÐòÖÐʹÓøÃSendMessageº¯Êý£¬ÐèÒª½«ÈçϵÄÉùÃ÷Óï¾ä°üº¬ÔÚÏîÄ¿µÄͨÓÃÉùÃ÷²¿·ÖÖУ¨×¢Òâ¸ÃÉùÃ÷Óï¾äÐèÒªÊéдÔÚÒ»ÐÐÄÚ£©£º
        Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
        ¸ÃSendMessage º¯ÊýÐèÒª4¸ö²ÎÊý£¬ÈçÏÂËùʾ£º
    hwndÒ»¸ö³¤ÕûÊýÖµ£¬Ëü°üº¬Îı¾¿ò¿Ø¼þµÄ¾ä±ú¡£
    wMsgÒ»¸ö³¤ÕûÊýÖµ£¬Ëü°üº¬±»·¢Ë͵ÄÏûÏ¢£¬ÔÚÕâ¸öÀý×ÓÀÊÇEM_SETREADONLY¡£
    wParamÒ»¸öÕûÊýÖµ£¬Èç¹ûËüΪTrue£¬Ôò¿Ø¼þ±»ÉèÖÃÖ»¶Á±ê¼Ç£¬Èç¹ûËüΪFalse£¬Ôòɾ³ý¿Ø¼þµÄÖ»¶Á±ê¼Ç¡£
    lParamÒ»¸ö³¤ÕûÊýÖµ£¬ËüÓ¦¸Ã±»ÉèÖÃΪ0£¨EM_SETREADONLY²»Ê¹ÓÃËü£©¡£
    ÔÚ³ÌÐòÔËÐÐÁË´ËSendMessageº¯ÊýÖ®ºó£¬½«·µ»ØÒ»¸ö³¤ÕûÊýÖµ£¬Ö¸Ã÷µ÷Óóɹ¦£¨·µ»ØÖµ·Ç0£©»òÊÇʧ°Ü£¨·µ»ØÖµÎª0£©¡£
ÑùÀý³ÌÐò
    ¸Ã³ÌÐòÏÔʾÁËÈçºÎ·ÀÖ¹Óû§±à¼­Ò»¸öÎı¾¿ò¿Ø¼þÖеÄÄÚÈÝ¡£
    1.ÔÚVisual Basic ÖпªÊ¼Ò»¸öÐµĹ¤³Ì£¬²ÉÓÃȱʡµÄ·½·¨½¨Á¢Form1¡£
    2.½«Èçϵij£Á¿ºÍÉùÃ÷Óï¾äÌí¼Óµ½Form1µÄͨÓÃÉùÃ÷²¿·ÖÖУ¨×¢Òâ¸ÃÉùÃ÷Óï¾äÐèÒªÊéдÔÚÒ»ÐÐÄÚ£©£º
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
Const WM_USER = &H400
Const EM_SETREADONLY = (WM_USER + 31)
    3.ÔÚForm1ÉÏÌí¼ÓÒ»¸öÎı¾¿ò¿Ø¼þ£¬²ÉÓÃȱʡµÄ·½·¨½¨Á¢Text1¡£½«ÆäMultiLineÊôÐÔÉèÖÃΪTrue£¬²¢ÇÒ½«ËüµÄScrollBarsÊôÐÔÉèÖÃΪ3-Both¡£
    4.ÔÚForm1ÉÏÌí¼ÓÒ»¸öÃüÁî°´Å¥¿Ø¼þ£¬²ÉÓÃȱʡµÄ·½·¨½¨Á¢Command1¡£
    5.½«ÈçϵĴúÂëÌí¼Óµ½Command1µÄµ¥»÷ʼþÖУº
Private Sub Command1_Click()
Dim RetVal As Long
RetVal = SendMessage(Text1.hwnd, EM_SETREADONLY, True, ByVal 0&)
End Sub
    Í¨¹ý°´ÏÂF5¼üÀ´Ö´ÐÐÑùÀý³ÌÐò¡£ÔÚÎı¾¿ò¿Ø¼þÖмüÈëһЩÎı¾£¬¿ÉÒÔʹÓÃˮƽºÍ´¹Ö±¹ö¶¯ÌõÀ´¹ö¶¯Îı¾£¬»¹¿ÉÒԸıäÎı¾µÄÄÚÈÝ¡£µ¥»÷ÃüÁî°´Å¥£¬Óû§ÈÔÈ»¿ÉÒÔʹÓùö¶¯Ìõ»òÊǹâ±ê¼üÀ´²é¿´Îı¾¿ò¿Ø¼þµÄÄÚÈÝ£¬µ«ÊDz»Äܱ༭Ëü¡£¡¡
ÇÉÓÃVisual BasicµÄTIMER¿Ø¼þ
Çൺ Ö£º£²¨
    Visual BasicÌṩһ¸öTimer¿Ø¼þ£¬Æä±¾ÖÊÉÏÊÇÒ»¸ö¾ßÓмä¸ôʱ¼äÉèÖÃËù´¥·¢µÄʱ¼ä³ÌÐò£¬Ê¹ÎÒÃÇ¿ÉÒÔ½«ÆäÒþ²ØÔÚϵͳÖУ¬ÒÔijһʱ¼ä¼ä¸ô´¥·¢Ïà¹Ø³ÌÐò¡£Áé»îµØÔËÓÃËü¿ÉÒÔÈ¡µÃºÜÇÉÃîµÄЧ¹û¡£
    ÏÂÃæ£¬ÎÒÃǾÙÒ»¸öÀý×Ó¡£
    ÎÒÃÇ¿ÉÒÔÔÚ½çÃæÉè¼ÆÖÐÉè¼Æ³öÕâÑùÒ»ÖÖЧ¹û£ºÒ»ÐÐÎÄ×ÖÔÚ´°ÌåÖÐ×Ô×óÏòÓÒÖð½¥¹ö¶¯£¬´ÓÓұߡ°¹ö¡±³ö´°ÌåµÄÎÄ×Ö£¬ÓÖÔÚ×ó±ßÖð½¥³öÏÖ¡£Èç´ËÑ­»·ÏÂÈ¥¡£ÀàËÆµçÊÓÉϵĹö¶¯ÐÅÏ¢¡£ÕâÑù¿ÉʹÄãÉè¼ÆµÄÈí¼þÏԵúÜÉú¶¯£¬¼«Ò×ÒýÆðÓû§µÄÐËȤ ¡£Æäʵ£¬Ê¹ÓÃVisual BasicµÄTimer¿Ø¼þ¾Í¿ÉºÜÈÝÒ×µØÊµÏÖËü¡£
    Ê×ÏÈ£¬ÎÒÃÇÔÚ´°ÌåÖÐÉèÖÃÁ½¸öLabel¿Ø¼þLabel1¡¢Label2¡£ÕâÁ½¸ö¿Ø¼þÖгýLeftÊôÐÔÍ⣬ÆäËûÊôÐÔÉèÖóÉÍêȫһÑù¡£ÕâÖ÷ÒªÊÇΪÁËʵÏÖÑ­»·¹ö¶¯µÄЧ¹û¡£ËüÃǵÄCaptionÊôÐÔÉèÖÃΪҪ¹ö¶¯ÏÔʾµÄÎÄ×Ö¡£ÁíÍâÔÙµ÷ÕûºÃÆä×ÖÌå¡¢´óСºÍÑÕÉ«µÈ¡£ÔÚForm£­Load¹ý³ÌÖÐÉèÖÃLabel2£®Left£½£­6240£¨´°Ìå¿í¶È£©£¬Label1£®Left£½0¡£ÕâÑù¿É±£Ö¤Laª²bel1µÄÒ»²¿·Ö¡°¹ö¡±³ö´°Ì壬ÔòLabel2µÄÒ»²¿·Ö¾Í½øÈë´°Ìå¡£¶øÐγÉÑ­»·¹ö¶¯ÔÚ´°ÌåÖÐÉèÖÃ?/FONT>Timer¿Ø¼þ¡£Timer¿Ø¼þµÄIntervalÊôÐÔ¾ö¶¨¹ö¶¯µÄËÙ¶È£¬µ¥Î»ÊǺÁÃë¡£ÀýÈ磬ÎÒÃÇÉèÖóÉ300£¬Ôòÿ¸ô0£®3Ãë¹ö¶¯Ò»´Î¡£È»ºó£¬ÔÚTimer1£­Timer£¨£©¹ý³ÌÖмÓÈëÈçϳÌÐò£º
Private Sub Timer1£­Timer£¨£©
Label1£®Left£½Label1£®Left£«50
Label2£®Left£½Label2£®Left£«50
If Label1£®Left£¾£½6240 Then
Label1£®Left£½£­6240
End If
If Label2£®Left£¾£½6240 Then
Label2£®Left£½6240
End If
End Sub
    ¹ö¶¯Ð§¹û¾ÍÐγÉÁË£¬¸ÐÐËȤµÄ¶ÁÕß¿ÉÒÔÊÔÊÔ¿´¡£Ö»ÒªÁé»îÔËÓÃTimer¿Ø¼þ£¬ÎÒÃÇ»¹¿ÉÒÔÉè¼Æ³ö¸üÓÐȤµÄЧ¹û¡£ÈçÓÃTimer¿Ø¼þ¿ØÖư´Å¥¿Ø¼þµÄVisibleÊôÐÔ£¬ÐγÉÉÁ˸°´Å¥¡£ÓÃTimer¿Ø¼þ¿ØÖÆÏÔʾ²»Í¬µÄͼÏó£¬Ðγɼòµ¥µÄ¶¯»­¡£
ÈçºÎʹVBµÄÍø¸ñ¿Ø¼þ¾ßÓÐÊäÈ빦ÄÜ
ºÓ±± Íõ´äÈÙ ÍõÈ«º£
    ÎÒÃÇÔÚʹÓÃVisual Basic for Windows¿ª·¢Ê±£¬¾­³£Óõ½Íø¸ñ¿Ø¼þ£¨Grid.vbx£©£¬ÒòΪ´Ë¿Ø¼þ¿ÉÒÔÓÃÀ´×÷ÀàËÆÓÚµç×Ó±í¸ñÐÎʽµÄÊä³ö±í£¬ÇÒ±à³Ì¼òµ¥£¬µ«ÔÚ´ËÍø¸ñ¿Ø¼þÖ»ÓÐÊä³ö¹¦ÄÜ£¬¶ø²»ÄÜÖ±½ÓÔÚÍø¸ñÉÏÊäÈ룬Õâ¸øÊ¹ÓÃÕß´øÀ´Ò»Ð©²»±ã¡£ÈçºÎÔÚÖ´ÐÐʱÏòÍøÂç¿Ø¼þÖÐÊäÈëÊý¾Ý£¬ÈËÃÇʹÓÃÁËһЩ·½·¨£¬µ«´ó¶¼Ê¹ÓÃÒ»Îı¾¿Ø¼þ×÷Öмäת»»£¬¼´½«ÓûÊäÈëµÄÐÅÏ¢ÏÈÊäÈëµ½¸ÃÎı¾¿Ø¼þ£¬È»ºó½«Îı¾¿Ø¼þµÄTEXTÊôÐÔ¸³¸øÍø¸ñµÄTEXTÊôÐÔ£¬ÕâÖÖ·½·¨¾¡¹Ü½â¾öÁËÏòÍø¸ñÊäÈëÊý¾ÝÎÊÌ⣬µ«Ôö¼ÓÁËÒ»Îı¾¿ò£¬¶Ô½çÃæÓÐЩ²»ÃÀ¹Û£¬Ð޸IJ¿·ÖÊý×Ö²»·½±ã£¬ÇÒÓ°ÏìËÙ¶È£¬ÄÇô£¬ÈçºÎÖ±½ÓÏòÍø¸ñÊäÈëÊý¾ÝÄØ£¿
    ±¾ÎĽ«½â¾öÖ±½ÓÏòÍø¸ñÊäÈëÊý¾ÝÎÊÌ⣬»ù±¾Ë¼ÏëÊÇ£ºÊ¹ÓÃÍø¸ñ¿Ø¼þKeyPressʼþ£¬´Ó¼üÅÌÉϽÓÊÕËù»÷¼üλµÄKeyAsciiÖµ£¬ÔÙÓÉChr¡ç£¨£©»òChr£¨£©º¯Êýת»»³É×Ö·û£¬È»ºó¶Á³öÍø¸ñµ¥ÔªµÄµ±Ç°TextÖµÓëÓɼüÅ̽ÓÊÕµ½µÄ×Ö·ûÏà¼Ó£¬×é³ÉеÄ×Ö·û´®£¬ÔÙ¸³¸ø¸Ãµ¥ÔªµÄTextÊôÐÔ£¬¼´Grid£®Text£½Grid£®Text£«Chr¡ç£¨KeyAscii£©¡£³ÌÐòÇåµ¥ÈçÏ£º
    ³ÌÐòÖж¨ÒåÁËÁ½¸öForm¼¶±äÁ¿WgridCol£¥ºÍWgridRow£¥¡£
Sub Grid£­KeyPress£¨KeyAscii as Integer£©
Grid£®Col£½WgridCol£¥
Grid£®Row£½WgridRow£¥
if KeyAscii£½8Then £àkeyascii£½8ΪÍ˸ñɾ³ý¼ü
if Grid£®Text£¼£¾¡±¡±Then Grid£®text£½Mid¡ç£¨Grid£®text£¬
1£¬Len£¨Grid£®text£©£­1£©¡®É¾³ý×îºóÒ»¸ö×Ö·û
Else
Grid£®text£½Grid£®text£«Chr¡ç£¨KeyAscii£©
End if
End Sub
Sub Grid£­RowColChange£¨£©
Wgrid£®Col£¥£½Grid£®Col
Wgrid£®Row£¥£½Grid£®Row
End Sub
    ÕâÑù¾Í¿ÉÒÔʵÏÖ¶ÔÍø¸ñµÄÈÎÒâÊäÈ룬¿ÉÒÔÊäÈë×Ö·û¡¢Êý×ֵȵȡ£ÓÉÓÚÊý×Ö0µ½9µÄAsciiֵΪ48µ½57£¬Ð¡ÊýµãAsciiµÄֵΪ46£¬ËùÒÔ¿ÉÒÔÊäÈëÈÎÒâʵÊý¡£ÈôÄúÏë·ÀÖ¹Óû§ÊäÈë³ýÊý×Ö¡¢Ð¡ÊýµãÒÔÍâµÄÈÎºÎÆäËû×Ö·û£¬¿É¶ÔÀ´×ÔÓÚ¼üÅ̵ÄAsciiÖµ½øÐÐÅжϣ¬ÓÐÌõ¼þµØ½ÓÊÕ£¬¾ÍʵÏÖÁ˽öÊäÈëÊýÖµ×Ö·û¡£Í¬ÀíÒ²¿ÉÒÔÏÞÖÆÖ»ÊäÈë×Öĸ×Ö·û¡£
    ¸ù¾ÝÕâÖÖ˼Ï룬Ҳ¿ÉÒÔ¶ÔVBÖÐÒ»Çв»¾ßÓÐÊäÈ빦ÄÜ£¬µ«¾ßÓÐKeyAscii»òÕßKeyDownʼþµÄ¿Ø¼þ½øÐÐÖ±½ÓÊäÈ룬Èç±êÇ©LabelµÈ¡£
ÔÚVBÖÐʹÓÃÊý¾Ý´°ÌåÉè¼ÆÆ÷²å¼þ
³¤É³ ÀîµÂÕÂ
    ·²Ê¹ÓùýVB4ÒÔÉϰ汾µÄÓû§¶¼»á·¢ÏÖ£¬ÓëVB3Ïà±È£¬ËüÌṩÁËÒ»¸ö³ÆÖ®Îª²å¼þµÄÐÂÌØÕ÷£¬Ò»¸ö²å¼þʵ¼ÊÉÏÊÇÒ»¸öOLE·þÎñÆ÷£¬ÓÃÓÚÀ©Õ¹VB¿ª·¢»·¾³£¬ÔöÇ¿VBµÄ¹¦ÄÜ¡£ÎÒÃÇ¿ÉÒÔʹÓòå¼þΪVB²Ëµ¥Ôö¼Ó¶¨ÖÆÏ¿É¹ÜÀíµ±Ç°¼¤»î´°Ìå¼°¿Ø¼þ£¬²¢ÏìÓ¦¶àÖÖÎļþ¿ØÖÆÊ¼þ¡£VBÔÚSAMPLESĿ¼µÄALIGN¡¢DATAWIZºÍSPY×ÓĿ¼Ï¾Ͱüº¬ÁËÈý¸öÕâÑùµÄ²å¼þÓ¦ÓóÌÐò¡£
    ÕâÀïÎÒÃÇ×ÅÖØÌÖÂÛDATAWIZϵÄÊý¾Ý´°ÌåÉè¼ÆÆ÷²å¼þ¡£
    1£®Êý¾Ý´°ÌåÉè¼ÆÆ÷²å¼þµÄÒýÈë
    Í¨³££¬ÎÒÃÇÔÚʹÓÃVBÊý¾Ý¿Ø¼þÉè¼ÆÊý¾Ý´°Ìåʱ£¬´óÁ¿µÄʱ¼ä¶¼»¨ÔÚ´°ÌåµÄ¿ÉÊÓ»¯Éè¼Æ¹ý³ÌÉÏ£¬Èç±êÇ©ºÍÊý¾Ý×°¶©¿Ø¼þµÄ½¨Á¢ºÍ¶ÔÆë¶¨Î»¡£ÎÒÃÇÉèÏëÒªÊÇÄܸù¾ÝÊý¾Ý¿â½á¹¹×Ô¶¯Éú³ÉÊý¾Ý´°Ì壬Äǽ«ÊÇÒ»¼þ·Ç³£ÁîÈËÓä¿ìµÄÊÂÇé¡£Ëæ×ÅVB4µÄÍÆ³ö£¬ÎÒÃǽ«»á¾ªÏ²µØ·¢ÏÖ£¬Ëü²»½öÌṩÁËʵÏÖ²å¼þµÄ¹¦ÄÜ£¬¶øÇÒ°üº¬ÁËÒ»¸öʵÓõÄÊý¾Ý´°ÌåÉè¼ÆÆ÷£¨Data Form Designer£©²å¼þ¡£ÀûÓøòå¼þ˲¼ä¼´¿ÉÉú³ÉʹÓÃÊý¾Ý¿Ø¼þµÄ¼òµ¥Êý¾Ý´°Ìå¡£µ«ÊÇÓÉÓڸô°ÌåÉè¼ÆÆ÷Ö»ÊÇÒ»¸öËæVB·¢ÐеÄʾÀýÓ¦ÓóÌÐò£¬ÎÒÃDZØÐëÊ×ÏÈÔØÈë¸ÃÎļþ£¬Éú³ÉVBµÄÒ»¸ö²å¼þ£¬ÔÙ°²×°¸Ã²å¼þ²ÅÄÜʹÓá£ËùÒÔVBµÄÊý¾Ý´°ÌåÉè¼ÆÆ÷¿ÉÄÜ»¹²»¹ãΪÈËÖª£¬ÏÂÃæ½«Ëü½éÉܸøVBµÄʹÓÃÕߣ¬Ï£ÍûÄÜΪËûÃÇÉè¼ÆÊý¾Ý´°ÌåÌṩ°ïÖú¡£
    2£®ÔØÈëÊý¾Ý´°ÌåÉè¼ÆÆ÷ʾÀýÎļþ
    Èç¹ûÊý¾Ý´°ÌåÉè¼ÆÆ÷ûÓгöÏÖÔÚ¿ÉÓòå¼þµÄÁбíÖУ¬Ôò±ØÐëÔØÈëËü£¬Æä²½ÖèÊÇ£º
    ¡ñÑ¡ÔñFile£üOpen Project²Ëµ¥ÃüÁ´ò¿ª£ÜVb£ÜSamples£ÜDatawiz£ÜDfd£®VbpÏîÄ¿Îļþ
    ¡ñÑ¡ÔñFile£üMake EXE FileÃüÁî´´½¨Ò»¸ö¿ÉÖ´ÐÐÎļþ
    ¡ñÔËÐиóÌÐò£¬Êý¾Ý´°ÌåÉè¼ÆÆ÷×Ô¶¯¼ÓÈëµ½ÏÂÒ»²½ÖÐҪʹÓõĿÉÓòå¼þµ½ÁбíÖÐ
    3£®°²×°Êý¾Ý´°ÌåÉè¼ÆÆ÷²å¼þ
    °²×°Êý¾Ý´°ÌåÉè¼ÆÆ÷²å¼þÊÇͨ¹ý²å¼þ¹ÜÀíÆ÷Íê³ÉµÄ£¬Æä¹ý³ÌÊÇ£º
    ¡ñÑ¡ÔñAdd£­Ins£üAdd£­In Manager²Ëµ¥ÃüÁî
    ¡ñѡȡData Form Designer£¬¼´Êý¾Ý´°ÌåÉè¼ÆÆ÷
    ¡ñµ¥»÷OK£¬ÔòÊý¾Ý´°ÌåÉè¼ÆÆ÷³öÏÖÔÚAdd£­Ins²Ëµ¥ÖÐ
    4£®Ê¹ÓÃÊý¾Ý´°ÌåÉè¼ÆÆ÷
    Í¨¹ý¼¸¸ö¼òµ¥µÄ²½Öè¾Í¿É´´½¨Ò»¸ö²é¿´²¢±à¼­¿âµÄʾÀýÓ¦ÓóÌÐò£º
    ¡ñÑ¡ÔñAdd£­Ins£üData Form Deª²signer²Ëµ¥ÃüÁµ¯³öÒ»¸öÊý¾Ý´°ÌåÉè¼ÆÆ÷´°¿Ú
    ¡ñÊäÈë´°ÌåÃû³Æ
    ¡ñѡȡһ¸öÊý¾Ý¿âÀàÐÍ
    ¡ñµ¥»÷Open Database´ò¿ªÒ»¸öÊý¾Ý¿â
    ¡ñ´ÓRecordSourceÁбíÖÐѡȡÏàÓ¦±í
    ¡ñ´ÓAvailable ColumnsÖÐѡȡ²¿·Ö»òÈ«²¿×Ö¶ÎÖÁIncluded ColumnsÖÐ
    ¡ñµ¥»÷Build the Form°´Å¥£¬²úÉúËùÐèÒªµÄÊý¾Ý´°Ìå
    ¡ñÊý¾Ý´°Ì彨Á¢Íê±Ï£¬µ¥»÷Close°´Å¥
    ¡ñÑ¡ÔñTools£üOptionsÃüÁ¸Ã´°ÌåÉèÖÃΪÆô¶¯´°Ìå
    ¡ñÔËÐиÃÓ¦ÓóÌÐò
    5£®Êý¾Ý´°ÌåÉè¼ÆÆ÷Íê³ÉµÄ¹¤×÷
    Êý¾Ý´°ÌåÉè¼ÆÆ÷Ϊ³ÌÐò¿ª·¢Õß´´½¨µÄ¿ÉÊÓ´°Ìå°üÀ¨ÒÔÏµĹ¤×÷£º
    ¡ñÔÚ´°ÌåÉÏÔö¼ÓÒ»¸öÊý¾Ý¿Ø¼þ£¬²¢ÎªÆäÉèÖÃConnect£¬DatabaseNameºÍRecordSourceÊôÐÔ
    ¡ñ¶ÔÓÚ±íÖÐËùÑ¡µÄÊý¾Ý¿â×ֶΣ¬Ôö¼ÓÒ»¸öÓÐ×Ö¶ÎÃûµÄ±êÇ©ºÍÏàÓ¦µÄ×°¶©¿Ø¼þ£¬×°¶©¿Ø¼þµÄÀàÐÍÈ¡¾öÓÚ×ֶεÄÊý¾ÝÀàÐÍ£º
   

      

        

    ×Ö¶ÎÊý¾ÝÀàÐÍ


        

×°¶©¿Ø¼þÀàÐÍ


      

      

        

    ×Ö·û´®¡¢ÈÕÆÚºÍÊýÖµ


        

  Îı¾¿ò


      

      

        

    ²¼¶û


        

  ¼ì²é¿ò


      

      

        

    MemoÓò


        

  ¶àÐÐÎı¾¿ò


      

      

        

    ¶þ½øÖÆÊý¾Ý


        

  OLE°üÈÝÆ÷


      

    


    ¡ñÔö¼ÓËĸöÃüÁî°´Å¥£ºÔö¼Ó¡¢É¾³ý¡¢Ë¢Ð¡¢¸üк͹رգ¬ÒÔÖ´Ðв»Í¬µÄÊý¾Ý·ÃÎʹ¦ÄÜ
ΪÃüÁî°´Å¥ºÍÊý¾Ý¿Ø¼þÔö¼Ó¼òµ¥µÄ³ÌÐò´úÂëºÍ×¢ÊÍ˵Ã÷
    µ±È»£¬Ê¹ÓÃÊý¾Ý´°ÌåÉè¼ÆÆ÷²úÉúµÄÊý¾Ý·ÃÎÊ´°ÌåÊǷdz£¼òµ¥µÄ£¬µ«Õâ¸ö¼òµ¥µÄ´°Ìå¿ÉÒÔ×÷ΪÔÚÓ¦ÓóÌÐòÖн¨Á¢¸ü¸´ÔÓµÄÊý¾Ý·ÃÎʹ¦ÄܵĿò¼Ü½á¹¹¡£

ÔÚVBÖÐÓö¨Ê±¿Ø¼þʵÏÖ³¤¶¨Ê±²Ù×÷
    Timer¿Ø¼þ¿ÉÓÃÀ´ÔÚÒ»¶¨Ê±¼ä¼ä¸ôÖ´ÐвÙ×÷£¬È»¶ø£¬Ò»¸öTimer¿Ø¼þµÄʱ¼ä¼ä¸ôȡֵ×î´óΪ64.767ºÁÃ룬ÕâÒâζ׿´Ê¹×µÄʱ¼ä¼ä¸ôÒ²²»±ÈÒ»·ÖÖÓ³¤¶àÉÙ£¨´óÔ¼64.8Ã룩£¬Ò²¾ÍÊÇ˵һ¸öTimer¿Ø¼þÖ»ÄÜÏìÓ¦´óÔ¼Ò»·ÖÖÓÖ®ÄÚµÄʼþ¡£Èç¹ûÒªÏìÓ¦³¤Ê±¼äµÄʼþ£¬ÀýÈ磬Ҫ¿ª·¢Ò»¸öѧϰϵͳµÄ×ÔÎÒ²âÊÔ»ò¿¼ÊÔ¹ý³Ì£¬ÐèÒªÏÞÖÆÒ»¸ö¿¼ÊÔʱ¼ä£¬Ò»°ã¶¼ÔÚ£±£°¡«£±£µ£°·ÖÖÓ£¬¿ªÊ¼×Ô¶¯¼ÆÊ±£¬Ê±¼äµ½±¨¾¯¿¼ÊÔ½áÊø¡£ÔòÐè¶à¸öTimer¿Ø¼þÅäºÏʹÓã¬ÕâÑù×öÏԵüȷ±ËöÓÖ²»ÊµÓá£Æäʵ£¬¿ÉÒÔÖ»ÓÃÒ»¸öTimer¿Ø¼þ£¬ÔÚÆäTimer¹ý³ÌÖÐʹÓÃÒ»¸ö¼ÆÊýÆ÷£¬´Ó¶øÏìÓ¦ÈÎÒⳤʱ¼ä¼ä¸ôµÄʼþ¡£
    ÏÂÃæÊÇÒ»¸ö¶¨Ê±ÊµÀýµÄ²¿·Ö´úÂ룺

      

        

  ¿Ø  ¼þ


        

  Êô  ÐÔ¡¡¡¡¡¡¡¡


        

  ÉèÖõÄÖµ


      

      

        

Label1


        

Caption


        

¡åÇëÊäÈëÏÞ¶¨Ê±¼ä£¨·ÖÖÓ£©£º¡å


      

      

        

Text1


        

Text


        

¡å¡å


      

      

        
Command1
        
Caption
        
¡åÈ·ÈÏ¡å
      

      

        

Timer1


        

Interval


        

£¶£°£°£°£°


      

      

        

        

Enabled


        

False


      

    


    ÔÚ´°ÌåͨÓÃÄ£¿éGeneralÀïÉùÃ÷£Î¡¢£ÔÁ½¸ö±äÁ¿£¬£Î×÷Ϊ¼ÆÊýÆ÷£¬£ÔÓÃÀ´´æ·ÅÏÞ¶¨Ê±¼ä¡£
DIM¡¡£Î¡¡AS¡¡Integer
DIM¡¡£Ô¡¡AS¡¡String
Command1£­¡¡Click¡¡£¨¡¡¡¡£©
£Ô£½Text1.Text
Timer1.Enabled£½True¡­¡­
¡¡¡¡End Sub
Timer1£­¡¡Timer£¨¡¡¡¡£©
£Î£½£Î£«£±
if ¡¡n£½val(T)¡¡Then
¡¡¡¡Beep
¡¡¡¡ Timer£±.Enabled£½False
¡¡¡¡ End if
End Sub
    ½«¶¨Ê±Æ÷µÄIntervalÊôÐÔÖµÉèΪ£¶£°£°£°£°£¬Ê¹µÃ¼ÆÊýÆ÷ÿ·ÖÖÓ¼Ó£±£¬µ±È»Ò²¿ÉÒÔÉèÖÃΪÆäËûµÄÖµ£¬È磱£°£°£°£¬ÕâÑù¾ÍʹµÃ¼ÆÊýÆ÷ÿÃëÖÓ¼Ó£±£¬µ«ÕâÑùÒªÀ˷ѽ϶àµÄϵͳʱ¼ä¡£

´¦Àí¶à¸ö¾ßÓÐÏàͬҪÇóµÄ¿Ø¼þ
    ÎÒÃÇÍùÍùÓÐʱÐèÒª´¦Àí¶à¸ö¾ßÓÐÏàÍ¬ÌØÐԵĿؼþ£¬È磺°Ñ 100 ¸ö Text ¼° Label µÄÄÚÈÝ¼ÓÆðÀ´¡£Õâʱ£¬ÎÒÃÇ¿ÉÒÔʹÓÃÏÂÃæµÄ¼¼ÇÉ£º
    1.Èç¹ûÊÇͬһÖÖÀàÐ͵Ŀؼþ£¬ÎÒÃÇ¿ÉÒÔʹÓÿؼþ×é´ïµ½Ä¿±ê¡£
    2.Èç¹û²»ÊÇͬһÀàÐͿؼþ£¬¿Ø¼þ×é¾ÍÎÞ·¨Ê¹Óã¬Õâʱ£¬ÎÒÃÇ»¹¿ÉÒÔÀûÓÿؼþµÄ Tag ÐÔ£¬ÎÒÃÇ¿ÉÒÔ°Ñÿ¸ö¿Ø¼þÉèÖÃÒ»¸ö Tag ±êÖ¾¡£ÔÚ³ÌÐòÖУ¬ÎÒÃÇ¿ÉÒÔÓÃÏÂÃæ´úÂëÀ´²ì¿´ÊÇ·ñÊÇÎÒÃÇÐèÒªµÄ¿Ø¼þ£º
        For i=0 To Controls.Count-1
        If Controls(i).Tag = "MyTag" Then ......
        Next i
ÊäÈëÏÞÖÆÈ·ÈÏ
    ÔÚijЩӦÓóÌÐòÖУ¬ÎÒÃÇÐèÒªÏÞÖÆÔÚÎı¾¿ò»òÆäËüһЩ¿Ø¼þÖÐÖ»ÄÜÊäÈëÊý×Ö»òÒ»Ð©ÌØ¶¨µÄ×Ö·û£¬ÏÖÔÚÎÒÃÇ¿ÉÒÔͨ¹ýÏÂÃæµÄÒ»¸öº¯ÊýÀ´ÊµÏִ˹¦ÄÜ£º
Function ValiText(KeyIn As Integer, ValidateString As String, Editable As Boolean) As Integer
Dim ValidateList As String
Dim KeyOut As Integer
If Editable = True Then
ValidateList = UCase(ValidateString) & Chr(8)
Else
ValidateList = UCase(ValidateString)
End If
If InStr(1, ValidateList, UCase(Chr(KeyIn)), 1) > 0 Then
KeyOut = KeyIn
Else
KeyOut = 0
Beep
End If
ValiText = KeyOut
End Function
    ÔÚ¹¤³ÌÖмÓÈë´Ëº¯Êýºó£¬Äã¾Í¿ÉÒÔʹÓÃËüÁË¡£·½·¨£ºÔÚÐèÒªÏÞÖÆÊäÈëµÄ¿Ø¼þµÄ KeyPress ¼ÓÈëÒÔÏ´úÂ룺
        KeyAscii=ValiText(Keyascii, "0123456789/-",True)
    ÏÖÔÚÄã¾Í¿ÉÒÔ¹ýÂǵôÄ㲻ϣÍûµÄ×Ö·ûÁË¡£ÔÚ´ËÀýÖУ¬ÎÒÃÇÖ»½ÓÊܵڶþ¸ö²ÎÊýÌṩµÄ×Ö·û£¬¼´£º"0123456789/-"
    ¶ø´Ëº¯ÊýµÄµÚÈý¸ö²ÎÊý¾Í¾ö¶¨ÁËÄÜ·ñʹÓà [Backspace] ¼ü¡£×îºóÖµµÃÒ»ÌáµÄÊǴ˺¯Êý¶Ô´óСдÊDz»Ãô¸ÐµÄ¡£
ÈçºÎÈÃTextBoxµÄÊäÈë¾ß±¸overwrite(¸²¸Ç)µÄ¹¦ÄÜ£¿
ÎÒ ÃÇ ÔÚ TextBox ÖÐ Ëù Êä Èë µÄ ×Ö ·û £¬ Ò» ÂÉ »á ±» TextBox ÊÇ ÊÓ ÎªÔÚ ¹â ±ê ´¦ ²å Èë (insert)РµÄ ×Ö ·û £¬ Èç ¹û Ïë ÒÔ Êä Èë µÄ ×Ö ·û overwrite(¸Çµô ) Êä Èë ¹â ±ê Ëù ÔÚ Î» Öà µÄ ×Ö ·û £¬ ¿É ÒÔ ÔÚ TextBox µÄ KeyPress Îï¼þ ³Ì Ðò ÖР׫ д ÒÔ Ï ³Ì Ðò £º
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii <> vbKeyBack And KeyAscii <> vbKeyReturn Then
Text1.SelLength = 1
' ½« Text1 ÊäÈë¹â±êλÖõÄ×Ö·û±ä³É¡¸±»Ñ¡È¡µÄ×Ö·û¡¹
Text1.SelText = Chr(KeyAscii)
' ¡¸±»Ñ¡È¡µÄ×Ö·û¡¹È¡´ú³ÉΪ¡¸ÊäÈëµÄ×Ö·û¡¹
KeyAscii = 0
' ½«´ËÒ»×Ö·ûÍ̵ô£¬²»ÔÙ´«¸ø TextBox
End If
End Sub
Èç ºÎ ¼Æ Ëã TextBox Ö® ÖÐ µÄ ÐÐ Êý
¶à ÐÐ µÄ TextBox ÊÇ ÒÔ vbCr+vbLf Á½ ¸ö ×Ö ·û À´ ¶Ï ÐÐ µÄ £¬ Òò ´Ë ¼ì²é Õâ Á½ ¸ö ×Ö ·û µÄ ³ö ÏÖ ´Î Êý ¾Í ¿É ÒÔ Öª µÀ TextBox µÄ ÐÐ Êý £¬ µ«Èç ¹û TextBox Ö® ÖÐ µÄ ×Ê ÁÏ ºÜ ¶à £¬ ¼ì ²é ÐÐ Êý µÄ Ö´ ÐРЧ ÄÜ ¾Í µÍÁË Ò» µã ¡£
Ϊ ÁË Ìá Éý Ö´ ÐРЧ ÄÜ £¬ ¿É Ö± ½Ó µ÷ Óà Windows API£¬ Ê× ÏÈ ÔÚ Form µÄ (Ò» °ã ) Éù Ã÷ ÒÔ Ï µÄ ³£ Êý ¼° API£º
Const EM_GETLINECOUNT = &HBA
Private Declare Function SendMessageBynum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
¶ø µ÷ Óà µÄ ·½ ·¨ Èç Ï £º
ret = SendMessageBynum(Text1.hwnd, EM_GETLINECOUNT, 0, 0&)
Ôò ´« »Ø Öµ ret ¼´ µÈ ÓÚ TextBox µÄ ÐÐ Êý ¡£
ÈçºÎÔÚÊäÈë¹â±ê½øÈëTextBoxʱ£¬½«Õû¸öTextBoxµÄÄÚÈݱä³É·´°×£¿
Àû Óà GetFocus Ê ¼þ (·¢ Éú ÓÚ Êä Èë ÓÎ±ê ½ø Èë TextBox ʱ )¡¢ SelStart Êô ÐÔ (±íʾ ±» Ñ¡ È¡ Çø µÄ Æð ʼ λ Öà )¡¢ ¼° SelLength Êô ÐÔ (±í ʾ ±» Ñ¡ È¡ Çø µÄ ³¤ ¶È )£¬ ³Ì Ðò Èç Ï £º
Private Sub Text1_GotFocus()
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub
ÔÚº¬ÓÐ¾í¶¯ÖáµÄ TextBox ÖУ¬ ÈçºÎÒÔ³ÌÐò¿ØÖÆ TextBox µÄ¾í¶¯£¿
´«ËÍ EM_LINESCROLL ÐÅÏ¢¸ø TextBox ¿ØÖÆÎļþ£¬·½·¨Êǵ÷Óà SendMessage API º¯Êý£¬Ï¸½ÚÈçÏ£º
1. API µÄÉùÃ÷£º
Const EM_LINESCROLL = &HB6
Private Declare Function SendMessageBynum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
×¢£ºÈç¹ûÒÔÉϵÄÉùÃ÷·ÅÔÚ¡¸Ò»°ãÄ£¿é¡¹µ×Ï£¬ Ó¦ÔÚ Const ֮ǰ¼ÓÉÏ Public ±£Áô×Ö£¬ ²¢ÇÒ½« Declare ֮ǰµÄ Private ±£Áô×ÖÈ¥µô¡£
2. µ÷Ó÷¶Àý£º
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, 0, 1 ) ' ϾíÒ»ÐÐ
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, 0, -1 ) ' ÉϾíÒ»ÐÐ
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, 1, 0) ' ÓÒ¾íÒ»ÁÐ
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, -1, 0) ' ×ó¾íÒ»ÁÐ
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, 1, 1 ) ' ϾíÒ»ÐÐÇÒÓÒ¾íÒ»ÁÐ
×¢£ºÒÔÉ쵀 Text1 Ϊ TextBox µÄÃû³Æ¡£
ÀûÓà timeGetTime ¸ü¾«×¼µØ¼ÆËãʱ¼ä²î¡£
ÎÒÏëÿ 0.005 Ãë×öijһ¼þ¹¤×÷£¬ ËùÒÔ׫дÁËÒÔϳÌÐò£º
Dim tm1 As Single
Do
    tm1 = Timer
    While Timer - tm1 <0.005 ' µÈÓÚ 0.005 Ãë
        DoEvents
    Wend
    ...×öijһ¼þ¹¤×÷
Loop
µ«Êµ¼ÊÉÏ£¬ ÔÚ While Ñ­»·ÀïÃæ£¬ Timer º¯Êý¼¸ºõÿ´Î¶¼µÃµ½ÏàͬµÄʱ¼ä£¬Ö»ÓдóÔ¼¸ôÁË 0.05Ãë²Å»áµÃµ½²»Í¬µÄʱ¼ä£¬ Ò²¾ÍÊÇ˵ Timer µÄ׼ȷÐÔÖ»ÓÐ 0.05 Ã룬 µ«ÎÒÏ£Íû½øÐеŤ×÷È´ÊÇÿ 0.005 ÃëÒ»´Î£¬ ¸ÃÔõô°ìÄØ£¿


¿ÉÒÔ¸ÄÓà Windows API µÄ timeGetTime º¯Êý£¬ ´ËÒ»º¯Êý»á´«»Ø Windows ¿ª»úÒÔÀ´Ëù¾­¹ýµÄʱ¼ä£¬Ê±¼äµ¥Î»ÊÇ 1/1000 Ã룬 ¾ÙÀýÀ´Ëµ£¬ ¿ª»ú¾­¹ý 2 ·ÖÖÓ£¬ Ôò´«»ØÖµµÈÓÚ 2*60*1000£¬ timeGetTime µÄÓŵãÊÇʱ¼ä¿ÉÒÔ¾«È·µ½ 1/1000 Ã룬 ËùÒÔ¿ÉÒÔÓÃÀ´½â¾öÉÏÊöµÄÎÊÌ⣬ϸ½ÚÈçÏ£º
1. API µÄÉùÃ÷£º
Private Declare Function timeGetTime Lib "winmm.dll" Alias "timeGetTime" () As Long
×¢£ºÈç¹ûÒÔÉϵÄÉùÃ÷·ÅÔÚ¡¸Ò»°ãÄ£¿é¡¹µ×Ï£¬ Ó¦½« Declare ֮ǰµÄ Private ±£Áô×ÖÈ¥µô¡£
2. ³ÌÐò·¶Àý£º
Dim tm1 As Long
Do
    tm1 = timeGetTime
    While timeGetTime - tm1 <5 ' µÈÓÚ 5/1000="0.005" Ãë
        DoEvents
    Wend
    ...×öijһ¼þ¹¤×÷
Loop
¿ìËÙ¶ÁÈ¡ TextBox µÚ N ÐеÄ×ÊÁÏ
TextBox ÊÇÒÔ vbCr+vbLf Ϊ·ÖÐзûºÅ£¬ Èç¹ûÎÒÃÇÒªÖðÒ»¶ÁÈ¡ TextBox ÿһÐУ¬ÎÞ·ÇÊÇѰÕÒ vbCr+vbLf µÄËùÔÚλÖ㬠ȻºóÈ¡³öÿһÐеÄ×Ö´®£¬ ²»¹ýÕâ¸ö·½·¨ÕæµÄ²»¿ì£¬¶øÇÒÈç¹ûÎÒÃÇÒª¶ÁÈ¡µÚ N ÐÐ×ÊÁÏ£¬ »¹ÊÇÒª´ÓµÚ 1¡¢2¡¢©©N-1 ÐÐÖðÒ»¶ÁÆð£¬ ʵÔÚÂé·³¡£
»¹ºÃ Windows API ÌṩÓжÁÈ¡ TextBox µÚ N ÐеŦÄÜ£¬ ϸ½ÚÈçÏ£º
1. API µÄÉùÃ÷£º
Const EM_GETLINE = &HC4
Const EM_LINELENGTH = &HC1
Const EM_LINEINDEX = &HBB
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub RtlMoveMemory Lib "KERNEL32" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)
×¢£ºÈç¹ûÒÔÉϵÄÉùÃ÷·ÅÔÚ¡¸Ò»°ãÄ£¿é¡¹µ×Ï£¬ Ó¦ÔÚ Const ֮ǰ¼ÓÉÏ Public ±£Áô×Ö£¬ ²¢ÇÒ½« Private ±£Áô×ÖÈ¥µô¡£
2. ³ÌÐò·¶Àý£º
Sub TB_GetLine(ByVal hWnd As Long, ByVal whichLine As Long, Line As String)
    Dim length As Long, bArr() As Byte, bArr2() As Byte, lc As Long
    lc = SendMessage(hWnd, EM_LINEINDEX, whichLine, ByVal 0&)
    length = SendMessage(hWnd, EM_LINELENGTH, lc, ByVal 0&)
    If length > 0 Then
        ReDim bArr(length + 1) As Byte, bArr2(length - 1) As Byte
        Call RtlMoveMemory(bArr(0), length, 2)
        Call SendMessage(hWnd, EM_GETLINE, whichLine, bArr(0))
        Call RtlMoveMemory(bArr2(0), bArr(0), length)
        Line = StrConv(bArr2, vbUnicode)
    Else
        Line = ""
    End If
End Sub
' ¼ÙÉèÒª¶ÁÈ¡ Text1 µÚ 5 ÐеÄ×ÊÁÏ
Dim S As String
Call TB_GetLine( Text1.hWnd, 5, S )
' ´«»ØÖµ S ¼´µÈÓÚµ½ 5 ÐеÄ×ÊÁÏ
×¢£ºTextBox µÄÐдÎÊÇ´Ó 0 ÆðËã¡£
ÔÚ ListBox Ö®ÖУ¬ ÈçºÎ¼ì²âÊó±êËùÔÚλÖõÄÑ¡Ï
ÎÒÃÇ¿ÉÒÔÀûÓà ListIndex ÊôÐÔµÃÖª ListBox µÄÑ¡Ï µ«Êǵ±Êó±êÒÆµ½Ä³Ò»¸öÑ¡ÏîÉÏÃæ(µ«»¹Ã»ÓÐѡȡ)£¬ÈçºÎµÃÖª´ËһѡÏîÄØ£¿·½·¨ÊÇ¶Ô ListBox Ëͳö LB_ITEMFROMPOINT ÐÅÏ¢£¬ ϸ½ÚÈçÏ£º
1. API µÄÉùÃ÷£º
Const LB_ITEMFROMPOINT = &H1A9
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
×¢£ºÈç¹ûÒÔÉϵÄÉùÃ÷·ÅÔÚ¡¸Ò»°ãÄ£¿é¡¹µ×Ï£¬ Ó¦ÔÚ Const ֮ǰ¼ÓÉÏ Public ±£Áô×Ö£¬ ²¢ÇÒ½« Private ±£Áô×ÖÈ¥µô¡£
2. µ÷ÓÃÀý£º(ÔÚ±íµ¥Éϲ¼ÖÃÒ»¸ö TextBox ¼°Ò»¸ö ListBox£¬ È»ºóÀûÓà MouseMove ʼþ³ÌÐòÀ´¼ì²âÊó±êËùÔÚλÖõÄÑ¡Ïî)
Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim pos As Long, idx As Long
    pos = X / Screen.TwipsPerPixelX + Y / Screen.TwipsPerPixelY * 65536
    idx = SendMessage(List1.hwnd, LB_ITEMFROMPOINT, 0, ByVal pos)
    ' idx ¼´µÈÓÚÊó±êËùÔÚλÖõÄÑ¡Ïî
    If Idx <65536 Then Text1.Text="List1.List(idx)<Br"> End Sub
ÔÚ RichTextBox Ö®ÖУ¬ ÈçºÎ½«±»Ñ¡È¡µÄÄÚÈÝ(°üº¬ÎÄ×Ö¼°Í¼Æ¬) ¸´ÖƵ½¼ôÌù²¾£¿
Èç¹û²»ÊÇд³ÌÐò£¬ ÄÇô¾ÍÊǰ´Ï¼üÅÌ Ctrl+C¡£
µ±Ê¹ÓÃÕß°´Ï Ctrl+C ʱ£¬ RichTextBox »á¶Ô×Ô¼ºËͳö WM_COPY µÄÐÅÏ¢£¬ ¶ø½Ó×Å RichTextBox µÄ´°¿Ú³ÌÐòÊÕµ½´ËÒ»ÐÅϢʱ£¬ ±ã»á½«±»Ñ¡È¡µÄÄÚÈÝ(°üº¬ÎÄ×Ö¼°Í¼Æ¬)¸´ÖƵ½¼ôÌù²¾&127;¡£
ËùÒÔÈç¹ûÏëÒª½« RichTextBox Öб»Ñ¡È¡µÄÄÚÈݸ´ÖƵ½¼ôÌù²¾£¬ Ö»Òª¶Ô RichTextBox Ëͳö WM_COPY ÐÅÏ¢¼´¿É£¬ ÒÔÏÂÊdzÌÐò׫дÉϵÄϸ½Ú:
1. API º¯ÊýµÄÉùÃ÷ʽ:
Const WM_PASTE = &H302
Const WM_CUT = &H300
Const WM_COPY = &H301
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
×¢£ºÈç¹ûÒÔÉϵÄÉùÃ÷·ÅÔÚ¡¸Ò»°ãÄ£¿é¡¹µ×Ï£¬ Ó¦ÔÚ Const ֮ǰ¼ÓÉÏ Public ±£Áô×Ö£¬ ²¢ÇÒ½« Private ±£Áô×ÖÈ¥µô¡£
2. µ÷ÓÃÀý:
SendMessage RichTextBox1.hWnd, WM_COPY, 0, ByVal 0&

¡¡

ÖÆ×÷½¥±äµÄ´°¿Ú±³¾°É«
Îâ±ó
¡¡¡¡ÔÚÐí¶àWindowsÈí¼þµÄ°²×°³ÌÐòÖУ¬Ê±³£¿ÉÒÔ¿´µ½ÒÔijÖÖÑÕÉ«ÓÉdzÖÁÉîµÄ½¥±äΪ±³¾°µÄ´°¿Ú¡£Ê¹ÓÃVBÖÆ×÷ÕâÀà´°¿ÚµÄ·½·¨Óв»ÉÙ£¬¶øÍ¨¹ýµ÷ÓÃAPIº¯Êý»æÖƽ¥±äµÄ´°¿Ú±³¾°É«£¬ËƺõÊÇÒ»Öּȼòµ¥ÓÖ½ÚÊ¡×ÊÔ´µÄ·½·¨¡£
¡¡¡¡Ê×ÏÈ£¬ÔÚmoduleÎļþÖмÓÈëÏÂÁÐÉùÃ÷Óï¾ä£º
¡¡¡¡Declare Function CreateSolidBrush Lib"GDI"(ByVal crColor As Long) As Integer
¡¡¡¡Declare Function FillRect Lib"USER"(ByVal hDC As Integer£¬lpRect As RECT£¬ByVal hBrush As Integer)As Integer
¡¡¡¡Declare Function DeleteObject Lib"GDI"(ByVal hObject As Integer)As Integer
¡¡¡¡Type RECT
¡¡¡¡left As Integer
¡¡¡¡ top As Integer
¡¡¡¡ right As Integer
¡¡¡¡ bottom As Integer
¡¡¡¡EndType
¡¡¡¡È»ºó£¬ÔÚ´°¿ÚµÄPaintʼþÖмÓÈëÏÂÁдúÂ룺
¡¡¡¡Private Sub Form_Paint()
¡¡¡¡Dim Color As Integer
¡¡¡¡Dim hBrush As Integer
¡¡¡¡Dim OldMode As Integer
¡¡¡¡Dim RetVal As Integer
¡¡¡¡Dim StepSize As Integer
¡¡¡¡Dim X As Integer
¡¡¡¡Dim FillArea As RECT
¡¡¡¡OldMode%=Me.ScaleMode
¡¡¡¡Me.ScaleMode=3
¡¡¡¡StepSize%=1+Me.ScaleHeight/80
¡¡¡¡Color%=255
¡¡¡¡FillArea.left=0
¡¡¡¡FillArea.right=Me.ScaleWidth
¡¡¡¡FillArea.top=0
¡¡¡¡FillArea.bottom=StepSize%
¡¡¡¡For X%=1 To 80
¡¡¡¡hBrush%=CreateSolidBrush (RGB(0,0,Color%))
¡¡ ¡¡RetVal%=FillRect(Me.hDC,FillArea,hBrush%)
¡¡¡¡ RetVal%=DeleteObject(hBrush%)
¡¡¡¡Color%=Color%-4
¡¡ ¡¡If Color% <0 Then Color%="0<Br"> ¡¡¡¡ FillArea.top=FillArea.bottom
¡¡¡¡FillArea.bottom=FillArea.bottom+StepSize%
¡¡¡¡Next
¡¡¡¡Me.ScaleMode=OldMode%
¡¡¡¡EndSub
¡¡¡¡°´F5ÔËÐУ¬¾Í»á³öÏÖÒ»¸öÒÔ´ÓÉÏÖÁÏ¡¢ÓÉdzÖÁÉîµÄ½¥±äÀ¶É«Îª±³¾°µÄ´°¿Ú¡£¶ÔÉÏÊö´úÂëÉԼӸ͝£¬±ã¿ÉÖÆ×÷³ö¸÷ÖÖÑÕÉ«ºÍˮƽ·½ÏòµÄ½¥±ä±³¾°¡£
ÈçºÎÔÚVBºÍDelphiÖпìËÙʵÏÖÁ¢Ì廯´°¿ÚÏÔʾ
    ÔÚVBºÍDelphiÖУ¬ÎÒÃÇ¿ÉÒԺܷ½±ãµØ´´½¨¾ßÓÐÁ¢Ì廯¹Û¸ÐµÄ´°¿Ú£¬ÕâÒ²ÊǽüÁ½ÄêÀ´£¬Win3.XÖнÏΪÁ÷ÐеÄÏÔʾ·½Ê½¡£Ðí¶àרҵ»¯µÄÈí¼þ¶¼²ÉÓÃÁËÕâÖÖÁ¢Ì廯µÄ´°¿ÚºÍÏàÓ¦µÄ¿Ø¼þ£¬´ïµ½ÁËÉÍÐÄÔÃÄ¿µÄЧ¹û¡£ÏÂÃæÎÒÃÇÀ´Ì¸Ì¸ÈçºÎÔÚĿǰ×îÁ÷ÐеÄÁ½ÖÖWin±à³ÌÓïÑÔÖÐʵÏÖÕâÑùµÄЧ¹û¡£
    Æäʵ£¬ÎÞÂÛÊÇVB»¹ÊÇDelphi£¬ÒªÊµÏÖÕâÖÖЧ¹û¶¼½ÏΪÈÝÒ×£¬ÔÚ±à³ÌÖУ¬²¢²»ÐèÒªµ÷ÓÃÍⲿµÄDLL£¬ÔÚ³ÌÐòÔËÐÐʱ£¬»á×Ô¶¯µ÷ÓÃCTL3dV2.dll¡£
    ÎÒÃÇÏÈÀ´¿´¿´ÈçºÎÔÚVBÖÐʵÏÖ£º
    1.н¨Ò»¸ö´°¿Ú¡£
    2.ÔÚ´°¿ÚformµÄÊôÐÔÁбíÖÐÓÐÒ»ÏîAuto3DÊôÐÔ£¬È±Ê¡ÖµÎªfalse£¬½«ÆäÉèÖÃΪtrue¡£ËüÊÇ¿ØÖÆVBÖÐÊÇ·ñÏÔʾÁ¢Ìå´°¿ÚµÄÖØÒªÊôÐÔ¡£
    3.ÔÚformµÄÊôÐÔÁбíÖл¹ÓÐÒ»ÏîBorderStyleÊôÐÔ£¬ÕâÊÇ¿ØÖÆ´°¿ÚµÄ±ß¿òÏÔʾÀàÐÍ£¬½«ÆäÉèÖÃΪ3£­Fixed Double¡£
    4.ÏÖÔÚ¿ÉÒÔÔËÐÐÕâ¸ö³ÌÐòÁË£¬Ä㽫»á¿´µ½Á¢Ìå´°¿Ú³öÏÖ¡£
    ½«Auto3DÊôÐÔÉèÖÃΪtrue£¬»¹ÓÐÒ»¸öºÜºÃµÄ¸±×÷Óã¬ÄǾÍÊÇÔÚÕâ¸ö´°¿ÚÉϵÄText¡¢Frame¡¢CheckBox¡¢OptionButtonºÍListBox¶¼×Ô¶¯¾ßÓÐÁËÁ¢ÌåЧ¹û¡£
    ÔÚDelphiÖÐʵÏÖËÆºõÏԵøü¼ÓÈÝÒ׺ÍÖ±¹Û£º
    1.н¨Ò»¸ö´°¿Ú¡£
    2.ÔÚ´°¿ÚformµÄÊôÐÔÁбíÖÐÓÐÒ»ÏîBorderStyleÊôÐÔ£¬ËüµÄȱʡֵΪbsSizeable£¬±íʾ±ß½ç¿ÉÒÔÈÎÒâµ÷Õû£¬½«ÆäÖØÐÂÉèÖÃΪbsDialog¡£
    3.ÔËÐгÌÐò£¬Äã»á·¢ÏÖÁ¢Ìå´°¿Ú³öÏÖÁË¡£(¿´À´£¬DelphiÖн«ÕâÖÖÁ¢Ì廯´°¿Ú³ÆÎª¡°¶Ô»°´°¿Ú¡±£¬È·ÊµÈç´Ë£¬±ÈÈçÔÚWordÖУ¬¶Ô»°´°¿Ú¶¼ÊÇÕâÖÖÁ¢Ì廯µÄÏÔʾ£¬¶øÖ÷´°¿ÚÈÔÈ»ÊÇÒ»°ãµÄ·ç¸ñ¡£)
    ÓëVBÖеÄAuto3DÀàËÆ£¬ÔÚDelphiÖÐÓÐÒ»¸öÊôÐÔΪCtl3D£¬½«ÆäÉèÖÃΪtrue£¬½«Ê¹ËùÓÐÔÚÕâ¸ö´°¿ÚÉϵĿؼþ¾ßÓÐÁ¢Ìå¹Û¸Ð£¬²¢ÇÒÕâÖֱ仯ÊÇÁ¢¿Ì·´Ó³µÄ£¬¶ø²»ÏóVBÖÐÔÚÔËÐÐʱ²ÅÄÜ¿´µ½¡£
    ÔÚDelphiµÄ´°¿ÚformÖУ¬Ä㻹¿ÉÒÔͨ¹ýÉèÖÃFormStyleÊôÐÔΪfsStayOntopÀ´Çá¶øÒ×¾ÙµÄʵÏÖ¡°ÓÀÔ¶¸¡ÔÚÆäËû´°¿Ú¡±ÉϵÄЧ¹û¡£ÖøÃûµÄ¡°ÒëÁÖ¡±Win°æ±¾¾ÍÊÇÓÃDelphiдµÄ£¬ËüÆäÖоÍÓÐÒ»¸ö¡°ÓÀÔ¶ÔÚ×îÉÏÃæ¡±µÄ¹¦ÄÜ£¬¾ÍÊÇÕâÑùʵÏֵġ£
ÓÃVisual BasicÉè¼Æ¸üºÃµÄÓû§½çÃæ
    ÓÐʱÔÚÒ»¸ö´°¿ÚÖгöÏֽ϶àµÄ¿ØÖƼþʱ£¬Èç¹ûÄÜÏòµ¼Ê½µØ½¨ÒéÓû§ÏÂÒ»²½¸Ã×öʲô£¬²»Ê§ÎªÉϲߡ£
    ÔÚVisual BasicµÄ³ÌÐòÉè¼ÆÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃÓï¾ä£ºObject.SetFaocusʹÎÒÃÇÏ£ÍûµÄ¿Ø¼þµÃµ½ÊäÈë½¹µã£¬¾Ù¸öÀý×Ó£ºÔÚForm1ÖÐÎÒÃǼÓÈëÒ»¸ö°´Å¥Command1ºÍÒ»¸öÎı¾ÊäÈëText1£¬Ë«»÷°´Å¥¿Ø¼þ£¬È»ºó¼üÈëÈçÏ´úÂ룺
        Text1.SetFocus
    ÔÙ°´F5ÔËÐгÌÐò£¬Äú¾Í»á¿´µ½Ò»µ¥»÷°´Å¥£¬Îı¾¿ò»áÁ¢¼´È¡µÃÊäÈë½¹µã¡£ÁíÍ⣬ÎÒÃÇ»¹¿ÉÒÔʹÓÃÓï¾ä£ºSendkeys "{TAB}"ʹÏÂÒ»¸ö¿Ø¼þ»ñµÃ½¹µã£¬µ«ÎÒÃÇÐèÒªÔÚÉè¼ÆÊ±È·¶¨¸÷¿Ø¼þµÄIndexÖµ¡£(ÔÚProperties´°¿ÚÖÐ)Èÿؼþ×Ô¼º¸ÐÖª×Ô¼ºµÄ¹¤×÷ÒÑÍê³É£¬¶øÖ÷¶¯½«½¹µãÈóö£¬»áʹÓû§¾õµÃÓ¦ÓóÌÐòºÜ´ÏÃ÷£¬Ò²¼õÉÙÁËÓû§³ö´íµÄ»ú»á¡£
    ¿ÉÊǵ±½¹µãÇл»µÄÁ½¸ö¿Ø¼þÏà¸ôÓÐÒ»¶¨¾àÀëʱ£¬ÉÏÊöµÄ·½·¨ÓÐʱҲ²»×ãÒÔÒýÆðÓû§µÄ×¢Ò⣬ÄÇôһÖֺõĽâ¾ö·½·¨Êǽ«Êó±ê¼ýÍ·Ò²ÒÆµ½¿Ø¼þÉÏ¡£¿Éϧ£¬VB²¢²»Ö§³ÖÊó±êÒÆ¶¯£¬ÄÇÎÒÃǾÍÇóÖúAPIº¯Êý£¬APIº¯ÊýSetCursorPos¿ÉÈÃÎÒÃÇÈçÔ¸¡£
    ÏÂÃæÊÇ×Ó³ÌÐòMoveCursorOn£¬Ëü¿ÉÈÃÊó±êÒÆ¶¯µ½Ö¸¶¨¿Ø¼þÉÏ·½¡£
    ÏÂÁдúÂëÇë·ÅÔÚdeclarations¶ÎÖУº
¡¡
Type PoinTAPI
x As Integer
y As Integer
End Type
Declare Sub SetCursorPos Lib "User"(Byval x As Integer,Byval y As Integer)
Declare Sub ClientToScreen Lib "User"(Byval hwnd As Integer,IpPoint As PointAPI)
Declare Function GetParent Lib "User"(Byval hwnd As Integer)As Integer
    È»ºó½¨Á¢Ò»¸öеÄ×Ó³ÌÐò(ALT£«N¡úN¡ú¼üÈë×Ó³ÌÐòÃûMoveCursorOn)£¬ÏÂÃæÊÇ×Ó³ÌÐòµÄ´úÂ룺
Sub MoveCursorOn(source As Control)
Dim Pt As PoinTAPI
Dim hparent As Integer
p.x=(Source.Left£«Source.Width/2)/Screen.Twipsperpixel)
p.y=(Source.Top£«Source.Height/2)/Screen.Twipsperpixel)
hparent=GetParent(source.hwnd)
ClientToScreen hparent pt
SetCursorPos pt.x pt.y
End Sub
    Ê¹ÓøÃ×Ó³ÌÐòºÜÈÝÒ×£¬ÀýÈçÎÒÃÇÏë°ÑÊó±êÒÆ¶¯µ½°´Å¥Command1ÉÏ£¬¾Í¿ÉʹÓÃÓï¾ä
Move Cursor On Command1
    Äú»á¿´µ½Êó±ê¼ýÍ·ÒѾ­Ö¸×Ű´Å¥Command1¡£
    ÐèҪ˵Ã÷µÄÊÇ£¬Ç§Íò²»ÒªÀÄÓøÃ×Ó³ÌÐò¡£ÈÃÊó±ê×Ô¼ºÂúÆÁÂÒ·É£¬ÎÒÃǵÄÓû§»á¸Ðµ½Ê§È¥¶ÔÓ¦ÓóÌÐòµÄ¿ØÖÆ£¬ÕâÊÇÎ¥·´ÎÒÃǵijõÖԵġ£
    ÔÚÓÐÊý¸öÊäÈë¿òµÄ´°¿ÚÖÐ(ÕâÔÚÊý¾Ý¿âÓ¦ÓóÌÐòÖÐÊǺܵäÐ͵Ä)£¬µ±Óû§Íê³ÉµÚÒ»¸öÊäÈë¿òµÄÊäÈëºó£¬×ܰ®Ï°¹ßÐԵļÓÒ»¸ö»Ø³µ£¬Ï£ÍûÊäÈë½¹µãÂäµ½ÏÂÒ»¸öÊäÈë¿òÖÐ(DOSÖдó¶àÊýÓ¦ÓóÌÐòÊÇÈç´Ë)£¬¿ÉÍùÍùÊÂÓëԸΥ£¬ÕâÒ»»Ø³µÈ´´¥·¢ÁËÓµÓÐDefaultÌØÐԵİ´Å¥£¬½á¹û²»ÊǹرÕÁ˵±Ç°´°¿Ú¾ÍÊÇÓֱijöÁíÒ»´°¿Ú¡£Óû§Õö´óÑÛ¾¦¿´×ÅÆÁÄ»£¬¡°ß×£¿£¡ÎÒµ½µ××öÁËʲô£¿¡±ÕâÊÇWindowsÐÂÓû§¾­³£Óöµ½µÄÊÂÇé¡£
    ½â¾öËüÆäʵºÜÈÝÒ×£¬Ö»ÐèÔÚÊäÈë¿òµÄKeyPressʼþÖмÓÈëÈçÏ´úÂ룺
IF KeyASCII=13 Then
KeyASCII=0
Sendkeys "{TAB}"
END IF
    ÕâÑù£¬µ±Óû§ÔÚÕâ¸öÊäÈë¿òÖмüÈëEnterʱ£¬¾ÍÏó¼üÈëTAB¼üʱ£¬½¹µã±»ÒƵ½ÏÂÒ»¿Ø¼þÉÏ¡£µ«Ðè×¢Ò⣬ÕâÖÖ·½·¨²»ÊÊÓÃÓÚ¶àÐеÄTextBox£¬¼´TextBoxµÄMultiLineÌØÐÔÉèΪTrueʱ£¬ÒòΪÕâʱµÄ»Ø³µ¼üÊÇÆð»»ÐеÄ×÷Óá£
ÀûÓÃVBÈýÎ¬Ãæ°å¿Ø¼þÉè¼ÆÁ÷¶¯Ìõ
    VBÌṩÁËÒ»¸öÈýÎ¬Ãæ°å¿Ø¼þ£¬ÀûÓÃÕâ¸ö¿Ø¼þ¿ÉÉè¼ÆÍ¼ÐÎЧ¹ûµÄÁ¢Ìå½çÃæ£¬´Ó¶øÊ¹Ó¦ÓóÌÐòµÄ½ØÃæÏԵøüÉú¶¯¡¢ÃÀ¹Û£¬¸Ã¿Ø¼þ»¹¿ÉÒÔÉèÖø÷ÖÖÐÎʽµÄ±³¾°£¬È»ºóÔÚ±³¾°ÉÏÏÔʾ¸÷ÖÖÐÎʽµÄ×Ö·û£¬ÁîÈ˸ÐÐËȤµÄÊÇ£¬Ê¹ÓÃÈýÎ¬Ãæ°å¿Ø¼þ£¬»¹¿ÉÉè¼ÆÎÒÃǾ­³£ÔÚ°²×°³ÌÐòÖп´µ½µÄ±íʾ°²×°½ø¶ÈµÄÁ÷¶¯Ìõ£¬²¢¿ÉÏÔʾ½ø³ÌµÄÁ÷¶¯Ìõ£¬²¢¿ÉÏÔʾ½ø³Ì°Ù·Ö±È£¬¸Ä±äÁ÷¶¯ÌõµÄÑÕÉ«µÈ¡£
¡¡
Ò»£® ½éÉÜÊôÐÔ
    FloodColor: È·¶¨Á÷¶¯ÌõµÄÑÕÉ«£¬È±Ê¡ÎªÀ¶É«¡£
    FloodPercent: ÏÔʾµ±Ç°¹ý³ÌÈçÁ÷¶¯Ìõ½øÐеİٷֱȣ¬²ÎÊý¸Ä±äʱÏÔʾµÄ°Ù·ÖÊýºÍÁ÷¶¯ÌõµÄÃæ»ý¸Ä±ä£¬ÉèΪһÕûÐÍÖµ£¬È¡Öµ·¶Î§ÊÇ0~100¡£
    FloodShowpct: ¾ö¶¨ÊÇ·ñÔÚÈýÎ¬Ãæ°å¿Ø¼þÉÏÏÔʾ°Ù·Ö±È£¬ÊÇÒ»¸öÂß¼­Öµ¡£ÎªTureʱÏÔʾ£¬ÎªFalseʱ²»ÏÔʾ¡£
    FloodType: ±íʾÓû§¶ÔÈýÎ¬Ãæ°å¿Ø¼þµÄʹÓ÷½Ê½¡£¿ÉȡֵÓÐ6¸ö£¬ÈçÏÂËùʾ£º
0 ȱʡÉèÖÃ
1 ±íʾÁ÷¶¯Ìõ·½Ïò´Ó×óµ½ÓÒ
2 ±íʾÁ÷¶¯Ìõ·½Ïò´ÓÓÒµ½×ó
3 ±íʾÁ÷¶¯Ìõ·½Ïò´ÓÉϵ½ÏÂ
4 ±íʾÁ÷¶¯Ìõ·½Ïò´Óϵ½ÉÏ
5 ±íʾʹÓÃÖ¸¶¨µÄÑÕÉ«´ÓÔ²ÐÄÏòÍâ»­Ô²
¡¡
¶þ£® Á÷¶¯ÌõÉè¼Æ
    Èç¹ûÔÚWindows 3.xÏ£¬¹¤¾ßÏäÖв»´æÔÚÈýÎ¬Ãæ°å¿Ø¼þ£¬¿ÉÑ¡ÔñFile²Ëµ¥ÖеÄ"Add File¡­" ½øÐÐÌí¼Ó£¬ÔÚµ¯³öµÄ¶Ô»°¿òÖÐÕÒµ½Windows\SystemĿ¼£¬È»ºóÑ¡¶¨Threed.vbxÎļþ¼´¿É£¬Èç¹ûʹÓÃVB 4.0£¬ÐèÔÚTools²Ëµ¥ÖÐÑ¡ÔñCustom ControlÃüÁѡ¶¨Sheridan 3d ControlsÏ°´OK°´Å¦£¬¿ÉÔÚ¹¤¾ßÏäÖÐÔö¼ÓÈýÎ¬Ãæ°å¿Ø¼þ¡£
    Æô¶¯VB £¬ÔÚ´°ÌåÖл­Ò»Ë®Æ½·½ÏòµÄ³¤·½ÐÎÈýÎ¬Ãæ°å¿Ø¼þ£¬°´F4£¬ÔÚÊôÐÔ´°¿ÚÖÐÉèÖÃÆäNameΪP3d¡¢BevellnnerΪ2-Raised¡¢FloodTypeΪ1¡¢FloodshowPctΪTrue,ÔÙÔÚ´°ÌåÖл­Ò»¸ö°´Å¦Command1£¬Ë«»÷¸Ã°´Å¦£¬¼üÈëÏÂÃæµÄ´úÂ룺
¡¡
Sub Command1_Click()
P3d.floodpercent=0
For N%=1 To 100
If N%>100 Then
Exit sub
End If
P3d.FloodPercent=N%
Next N%
End Sub
    °´F5£¬ÔËÐиóÌÐò£¬µã»÷Command°´Å¦£¬¼´¿É¿´µ½Á÷¶¯ÌõЧ¹û¡£
ÀûÓÃVBµÄͼƬ¿òʵÏÖÆÁÄ»µÄ¹ö¶¯
    ¶ÔÓÚѧϰʹÓÃVBÀ´±à³ÌµÄµçÄÔ°®ºÃÕßÀ´Ëµ£¬¿ÉÄÜ»áÓöµ½ÕâÑùÒ»¸öÎÊÌ⣺¾ÍÊÇÈçºÎʵÏÖÆÁÄ»µÄ¹ö¶¯£¬ÒòΪµ±ÒªÏÔʾµÄÄÚÈݳ¬³öÁËÆÁÄ»µÄ´óСºó£¬ÀûÓÃVBËùÌṩµÄ´¹Ö±¹ö¶¯ÌõºÍˮƽ¹ö¶¯ÌõµÈ¿Ø¼þÊDz»¿ÉÄÜÖ±½ÓʵÏÖÕâÒ»ÌØÊâÏÔʾ¹¦Äܵġ£ÄÇôÓÐûÓÐÆäËüµÄ°ì·¨ÄØ?´ð°¸Êǿ϶¨µÄ¡£ÎÒÃÇÖªµÀVBµÄͼƬ¿òÊÇÓÃÀ´ÏÔʾͼÐε쬵«Ëü»¹ÓÐÐí¶àÆäËüÓÃ;£¬±ÈÈç¿ÉÒÔÓÃÀ´´´½¨Ò»Ð©¶¯»­Í¼Ðεȡ£Æäʵ¶ÔÓÚÉÏÃæµÄÎÊÌâÎÒÃÇÒ²¿ÉÒÔÀûÓÃͼƬ¿òÀ´ÇÉÃîµØ½â¾ö¡£·½·¨ÈçÏ£º
    Ê×ÏÈ£¬µ¥»÷¹¤¾ß¿òÖеÄͼƬ¿ò(Picture Box)¿Ø¼þºÍÃüÁî°´Å¥¿Ø¼þ£¬ÔÚ´°Ìå(Form1)ÉϽ¨Á¢Í¼Æ¬¿ò¶ÔÏóPicture1ºÍÃüÁî°´Å¥¶ÔÏóCommand1£¬½«ÃüÁî°´Å¥µÄCaptionÊôÐÔÉèÖÃΪ"Í˳ö"£¬Picture1µÄ´óСÉèÖÃΪÏÔÊ¾ÇøÓòµÄ´óС£¬ÔÙµ¥»÷¹¤¾ß¿òÖеÄͼƬ¿ò¿Ø¼þ£¬ÔÚPicture1ÉϽ¨Á¢ÁíÒ»¸öͼƬ¿ò¶ÔÏóPicture2£¬½«ËüµÄLeftºÍTopÊôÐÔÉèÖÃΪ0¡£ÓÃÎı¾¿ò£¬±êÇ©¿òµÈÆäËü¿Ø¼þ»òµ¼ÈëÒ»·ùͼÏóÔÚPicture2ÉÏÉ趨¾ßÌåµÄÏÔʾÄÚÈÝ£¬µ±È»Picture2µÄ´óСһ¶¨ÒªÏȵ÷Õûµ½ÄÜÈ«²¿ÈÝÄÉËùÓÐÒªÏÔʾµÄÄÚÈÝ£¬×îºóµ¥»÷¹¤¾ß¿òÖеĴ¹Ö±¹ö¶¯Ìõ¿Ø¼þºÍˮƽ¹ö¶¯Ìõ¿Ø¼þ£¬ÔÚ´°Ìå(Form1)ÉÏ·Ö±ð½¨Á¢´¹Ö±¹ö¶¯Ìõ¶ÔÏóVScroll1ºÍˮƽ¹ö¶¯Ìõ¶ÔÏóHScroll1£¬²¢ÉèÖúÃËüÃǵÄÊôÐÔ¡£ÖÁ´ËÔÚ´°Ìå(Form1)ÉϵÄËùÓÐÉèÖù¤×÷¾ÍÍê³ÉÁË£¬ÏÂÃæÊǾßÌåµÄ³ÌÐò´úÂ룺
Private Sub VScroll1_Change()
Picture2.Top= -VScroll1.Value
End Sub
Private Sub Hscroll1_Change()
Picture2.Left= -HScroll1.Value
End Sub
Private Sub Command1_Click()
End
End Sub
    ÔËÐгÌÐò£¬µ±°´ÏºᡢÊú¹ö¶¯Ìõʱ£¬¾ÍÄÜʹÏÔʾÄÚÈÝʵÏÖ×óÓÒ¡¢ÉÏϵĹö¶¯¡£´Ë·½·¨¼òµ¥Ò×ÐУ¬ÓÐÐËȤµÄÅóÓѲ»·ÁÊÔÒ»ÊÔ¡£
VBÖÐÒõÓ°×ÖÌåµÄʵÏÖ
̫ԭ ºú½¨Ãñ
    Visual BasicȷʵÊÇÒ»Öֺܲ»´íµÄÓ¦ÓóÌÐò¿ª·¢¹¤¾ß¡£±ÊÕßÔÚʹÓÃÖУ¬Ò²È·Êµ¸Ðµ½ÓÃVBÉè¼Æ³ÌÐò£¬Ðí¶à·½·¨µÄʵÏÖÊÇÄÇôµÄ¼òµ¥¡£ÓÐʱ£¬½ö½öÐèÒª¼¸ÌõÓï¾ä£¬¾Í¿ÉʵÏÖÒ»ÖÖ·½·¨¡¢Ð§¹û»ò¹¦ÄÜ¡£ÏÂÃæ¾Í½éÉÜһϣ¬ÒõÓ°×ÖÌåÔÚVBÖеÄʵÏÖ¡£³ÌÐòÈçÏ£º
Private Sub Form£­Click£¨£©
CurrentX£½700
CurrentY£½1000
FontSize£½30
ForeColor£½QBColor£¨8£©
Print¡±Software Weekly¡±
CurrentX£½750
CurrentY£½1050
FontSize£½30
ForeColor£½QBColor£¨12£©
Print¡±Softª²ware Weekly¡±
End Sub
    ÔÚÊôÐÔ£¨properties£©´°¿ÚÖÐÉèÖãºAuto3DΪtrue FontѡһÖÖTrue Type×ÖÌå¡£
    ¸Ã³ÌÐòÊǰѴúÂë¼Óµ½FormµÄClickʼþÖУ¬Í¨¹ýÏÈ´òÓ¡×ÖÌåµÄÒõÓ°²¿·Ö£¬ÔÙ´òÓ¡³ö×ÖÌ壬ÒÔʵÏÖÒõÓ°×ÖÌåЧ¹ûµÄ¡£ÊÔÔËÐиóÌÐò£¬µ¥»÷´°Ìåºó£¬¼´³ÊÏÖ³öÒõÓ°×ÖÌåSoftware Weekly¡£
ÔÚVBÖÐÖÆ×÷µ¥¶À³ÌÐò·âÃæµÄÁ½ÖÖ·½·¨
ÁÉÄþÌúÁë ½ðÓÀÌÎ
    ÕâÀïËùνµÄµ¥¶À·âÃæ£¬ÊÇÖ»¶ÀÁ¢Ó¦ÓóÌÐò´°¿Ú±¾ÉíµÄÒ»¸ö´°¿Ú£¬Õâ¸ö´°¿ÚÔÚ³ÌÐòÔËÐÐʱÊ×Ïȵ¯³öÆÁÄ»£¬ÓÃÓÚ×°ÊγÌÐò±¾Éí£¬»ò¼òµ¥µÄÑÝʾһϳÌÐòµÄÓÅÔ½ÐÔ¡£ÕâÑùµÄ·âÃæÔںܶàרҵµÄWINDOWS³ÌÐòÖоù´æÔÚ£¬ÔÚVBÖпÉÓÐÁ½ÖÖ¼òµ¥µÄ·½·¨ÊµÏÖÕâÒ»¹¦ÄÜ¡£
µÚÒ»ÖÖ·½·¨£º¶à´°Ìå±à³Ì·½·¨
    ´Ë·½·¨ÊÇͨ³£²ÉÓõķ½·¨£¬¼´ÔÚ³ÌÐòÖд´½¨Á½¸ö»òÁ½¸öÒÔÉϵÄForm´°Ì壬°ÑÆäÖеÄÒ»¸ö×÷ΪרÃŵijÌÐò·âÃæÖÆ×÷³¡Ëù£¬¾ßÌå·½·¨£º
    1¡¢´´½¨Ò»¸öÐÂÏîÄ¿Form1£¬²¢ÔÚ´Ë´°ÌåÄÚ°²·ÅCommand1ÃüÁî°´Å¥£¬ÔÚCommand1-Click()ʼþÖÐÊäÈë½áÊø³ÌÐò´úÂë¡°END¡±¡£
    2¡¢µ¥»÷²Ëµ¥µÄ¡°Insert"ÏîÄ¿£¬¼ÓÈëÒ»¸öд°ÌåForm1¡£
    3¡¢Ë«»÷Form1´°Ìå¿Õ°×´¦£¬ÔÚForm1-Load()ʼþÖÐÊäÈëÈçÏ´úÂ룬ÓÃÓÚÒþ²ØÖ÷´°ÌåForm1£¬Öõڶþ´°ÌåΪ×î´óģʽ£¬²¢ÔÚÔËÐгÌÐòÊ×ÏÈÏÔʾºÍ¶þ´°Ì壺
Private Sub Form-Load () ¡¯Òþ²ØÖ÷´°¿Ú
Form1.Visible = 0 ¡¯´°¿Ú2×î´óģʽ
Form2.WindowState =2 ¡¯ÏÔʾ´°¿Ú2
Form2.Show
End Sub
    4¡¢ ÔÚ´°ÌåForm2Öж¨ÒåÈ«³Ì±äÁ¿£º
Dim strr1 As String
Dim i As Integer
    5¡¢ÔÚ´°ÌåForm2ÖзÅÈëÒ»¸öʱ¼ä¿Ø¼þTimer1¡£
    6¡¢ÔÚ´°ÌåForm2ÖеÄForm-Load ()ʼþÖÐÊäÈëÒÔÏ´úÂ룬ÓÃÓÚÔÚ´°Ìå2ÖÐÏÔʾͼÏñ£¬²¢ÖÃʱ¼ä¿Ø¼þƵÂÊ£º
Private Sub Form-Load ()
Form2.Picture = LoadPicture("c:\windows\setup.bmp")
Timer1.Interval = 10
i =0
End Sub
    7¡¢ÔÚʱ¼ä¿Ø¼þTimer1- Timer1£¨£©Ê¼þÖнøÐгÌÐò·âÃæµÄÖÆ×÷¹¤×÷£¬ÑÝʾ¼òµ¥µÄ¶¯»­£¬²¢¿ØÖƴ˶¯»­ÔËÐÐÒ»¶Îʱ¼äºó×Ô¶¯Í£Ö¹£¬¹Ø±Õ³ÌÐò·âÃæ£¬·µ»Ø³ÌÐòÖ÷´°¿Ú£»ÏÂÃæµÄ´úÂëʵÏÖÔÚÒ»¸öͼƬÉÏËæ»úÏÔʾ×Ö·û´®£¬ÏÔʾ30´Î×Ö·û´®ºó×Ô¶¯Í˳ö¡£
Private Sub Timer1-Timer ()
Strr1 = "³ÌÐò·âÃæÑÝʾ¡°
With Form2
.Font.Transparent =True ¡¯Í¸Ã÷ÏÔʾ×Ö·û
.Font.Size = Rnd *30+10 ¡¯Ëæ»ú±ä»¯×ÖºÅ
.Font.Italic =True ¡¯Ð±ÌåÓÐЧ
.ForeColor=RGB(Rnd*256,Rnd*256,Rnd*256) ¡¯Ëæ»ú±ä»¯Ç°¾°
.FontName =Screen.Fonts (Rnd*7+14) ¡¯Ëæ»ú±ä»¯×ÖÌå
End With
hh=Form2.TextHehght (strr1) ¡¯È¡×Ö·û´®¸ß¶È
ww= Form2.TextWidth (strr1) ¡¯È¡×Ö·û´®¿í¶È
x=Rnd * ( Form2.ScaleWidth-ww) ¡¯Ëæ»ú¸Ä±ä×ø±ê
y=Rnd *( Form2.ScaleHeight-hh)
Form2.Current X=x
Form2.Current Y=y
Form2.Print strr1 ¡¯ÏÔʾ×Ö·û
i = i +1 ¡¯¼ÆÊý
If i >30 Then
Unload Me ¡¯¹Ø±Õ·âÃæ
Form1.Show ¡¯µ÷ÈëÖ÷´°¿Ú
Timer1.Enabled =False ¡¯¹Ø±Õʱ¼ä¿Ø¼þ
End If
End Sub
¡¡
    8¡¢ÎªÁËÄܹ»ÈËΪµØ¿ØÖƳÌÐò·âÃæµÄÍ£Áôʱ¼ä£¬¿ÉÔÚ´°ÌåForm2Êó±êµ¥»÷ʼþÖа²·ÅÍ˳ö·âÃæ´úÂ룺
Private Sub Form-Click ()
Unload Me
Form1.Show
Timer1.Enabled =False ¡¯¹Ø±Õʱ¼ä¿Ø¼þ
End If
End Sub
    ÖÁ´Ë¹¤×÷È«²¿Íê³É£¬µ±ÔËÐгÌÐòʱ£¬Ê×Ïȵ¯³ö³ÌÐò·âÃæ£¬·âÃæÉÏÏÔʾһ·ù¡¤BMPͼÏñ£¬Ö®ºóÔÚ´ËͼÏñÉϽøÐÐËæ»ú×Ö·û´®µÄÏÔʾ£¬×Ö·û´®µÄλÖá¢×ÖÌå¡¢×ֺš¢Ç°¾°É«µÈÖµ¶¼ÊÇËæ»ú±ä»¯µÄ£¬ÏÔʾ30´Îºó×Ô¶¯¹Ø±Õ·âÃæ·µ»ØÖ÷´°¿Ú£¬ÑÝʾ¹ý³ÌÖÐÓÃÊó±êµ¥»÷´°¿ÚÒ²»á·µ»ØÖ÷´°¿Ú£¬ÔÚÖ÷´°¿ÚÖа´Ï½áÊø°´Å¥Í˳ö³ÌÐò¡£¾ßÌå²Ù×÷ʱ»¹ÓкܶàÆäËü¼¼ÇÉ£¬±ÈÈç¿ÉÒÔÖõڶþ¸ö´°ÌåΪÖ÷´°Ì壬ÕâÑùÔËÐÐʱ¿É×Ô¶¯Ïȵ¯³ö³ÌÐò·âÃæ£¬¿ÉÊ¡ÂÔÒþ²Ø´°ÌåºÍµ÷Èë´°ÌåµÄ¹ý³Ì£¬ÁíÍâµÚ¶þ´°ÌåÒ²¿ÉÒÔÔÚ³ÌÐòÔËÐÐʱÓÉ´úÂ붯̬Éú³É£¬ÕâÑù±à³Ìʱ¸´ÔÓһЩ£¬µ«ÓÐÀûÓÚ³ÌÐò´úÂëµÄ¹ÜÀí£»³ÌÐò·âÃæµÄ¾ßÌåÖÆ×÷¹ý³Ì£¬ÓÐÐí¶à¶¯Ì¬Í¼Ïñ¿ØÖÆ·½·¨¿ÉÒÔʹÓã¬Ö»ÒªÁé»î¶¯ÓÃVBµÄ×÷ͼ·½·¨£¬ÔÙ¼ÓÉÏһЩ±ØÒªµÄAPIº¯ÊýµÄÅäºÏ£¬»áÖÆ×÷³öÀíÏëµÄ³ÌÐò·âÃæ¡£
¡¡
µÚ¶þÖÖ·½·¨£ºÒþ²Ø¿Ø¼þ·½·¨
    ¶à´°¿Ú±à³Ì´æÔÚ×ÅÒ»¶¨µÄ¸´ÔÓÐÔ£¬ÐèÒª¶Ô¶à¸ö´°ÌåµÄ¡¤FrmÎļþ½øÐйÜÀí£¬±àÂëʱ»¹ÐèҪƵ·±µØÔÚ¶à¸ö´°¿Ú¼ä½øÐÐת»»¡£Êµ¼ÊÉÏͨ¹ýÒ»¸ö´°ÌåÒ²¿ÉÒÔ±àÖÆ³öÀàËÆµÄ·âÃæÐ§¹û¡£»ù±¾Ô­Àí¾ÍÊÇÔÚ³ÌÐòÔËÐÐʱÊ×ÏÈͨ¹ýVISIBLEÊôÐÔÒþ²ØÈ«²¿¿Ø¼þ£¬È»ºóÔÚÖ÷´°ÌåÄÚ½øÐгÌÐò·âÃæÉè¼ÆºÍÑÝʾ£¬ÑÓʱһ¶¨Ê±¼äÔÙ»Ö¸´ËùÓпؼþµÄÏÔʾ£¬¼´´ïµ½Á˶ÀÁ¢³ÌÐò·âÃæµÄÖÆ×÷¹ý³Ì¡£ÓÉÓÚ´°ÌåÄڵĿؼþºÜ¶à£¬ÖðÒ»Òþ²Ø»òÏÔʾ·Ç³£·±Ëö£¬¿É²ÉÓÃÈÝÆ÷¿Ø¼þ¼ò»¯²Ù×÷¹ý³Ì£¬¼´°Ñ¿Ø¼þÈ«²¿·Åµ½Frame1µÈ¿Ø¼þÉÏ£¬ÕâÑùÖ»ÒªÖ´ÐÐFrame1.Visible=0£¬¼´¿ÉʹÆäÉÏÃæµÄËùÓпؼþÒþ²ØÆðÀ´¡£
cÓÉÓÚ³ÌÐòֻɿ¼°Ò»¸ö´°Ì壬³ÌÐòÉè¼ÆµÄ´ó²¿·Ö¹¤×÷Ö»ÊDZàÂë¹ý³Ì£¬ËùÒÔ²»ÔÙ·Ö²½½éÉÜ¡£ÔÚ´°ÌåForm1Öа²·ÅÒ»¸öʱ¼ä¿Ø¼þTimer1 ºÍÒ»¸öÈÝÆ÷¿Ø¼þFrame1,ÔÙÔÚFrame1Éϰ²·ÅÒ»¸öÃüÁî°´Å¥Command1£¬¾ßÌå³ÌÐòÉè¼ÆÊ±¿É°ÑËùÓÐÖ÷³ÌÐò¹¤×÷¿Ø¼þ·ÅÔÚFrame1ÉÏ£»Ö®ºó°ÑÏÂÃæµÄ´úÂëÌîÈëÏàÓ¦µÄʼþÖ®Öм´¿ÉÍê³ÉÈ«²¿³ÌÐòÉè¼Æ¹¤×÷¡£ÔËÐд˳ÌÐòºóÊ×ÏÈÔÚÈ«ÆÁÄ»´°ÌåÄÚÏÔʾͼÏñ£¬²¢´Ó×óÉϽǿªÊ¼Öð½¥·Å´ó×Ö·û´®¡°³ÌÐò·âÃæÑÝʾ¡±£¬·Å´ó¹ý³ÌÖÐÑÕÉ«·¢Éúƽ»¬±ä»¯£¬ÐγÉÃÀÀöµÄÍÏβЧ¹û£¬Á¬ÐøÏÔʾ5´Îºó×Ô¶¯¹Ø±Õ·âÃæ£¬·µ»ØÖ÷³ÌÐò´°¿Ú£¬Í¬ÑùÁ¢¼´¹Ø±Õ³ÌÐò·âÃæ£¬·µ»ØÖ÷³ÌÐò´°¿Ú£¬µ¥»÷Ö÷´°ÌåÖеÄÃüÁî°´Å¥Í˳ö³ÌÐò¡£
¡¯¶¨ÒåÈ«³Ì±äÁ¿
Dim i ,j As Integer
¡¯Í˳ö³ÌÐò°´Å¥
Private Sub Command1-Click ()
End
End Sub
¡¯µ¥»÷´°Ì幨±Õ·âÃæ
Private Sub Form-Click ()
Frame1.Visible =1 ¡¯»Ö¸´ÈÝÆ÷¿Ø¼þ
timer1.Enabled =False ¡¯¹Ø±Õʱ¼ä¿Ø¼þ
Form1.WindowState =0 ¡¯»Ö¸´È±Ê¡´°¿Úģʽ
End Sub
¡¯×¼±¸¹¤×÷
Private Sub Form -Load ()
Form1.WindowState =2 ¡¯´°¿Ú×î´ó»¯
Frame1.Width =Form1.Width ¡¯µ÷ÕûÈÝÆ÷¿Ø¼þ³ß´ç
Frame1.Height =Form1.Height
Frame1.Top =0 ¡¯µ÷ÕûÈÝÆ÷¿Ø¼þλÖÃ
Frame1.Left =0
Frame1.Visible =0 ¡¯Òþ²ØÈÝÆ÷¿Ø¼þ
timer1.Interval =10 ¡¯ÖÃʱ¼äƵÂÊ
Form1.Picture =LoadPicture ("c:\windows\setup.bmp") ¡¯×°ÈëͼÏñ
Form1.ScaleMode=3 ¡¯ÖÃ×ø±ê¿Ì¶È
Form1.FontName =¡°ºÚÌ塱 ¡¯ÖÃ×ÖÌåÃû³Æ
End Sub
¡¯·âÃæÖÆ×÷ £¨¶¯»­ÑÝʾ£©
Private Sub timer1-Timer ()
Strr ="³ÌÐò·âÃæÑÝʾ"
With Form1 ¡¯Í¸Ã÷ÏÔʾ
.Font.Transparent =True
.Font.Size = i + 1 ¡¯·Å´ó×ÖºÅ
.Font.Italic =True ¡¯Ð±ÌåÓÐЧ
.ForeColor=RGB(i*3,56,256-i*3) ¡¯Æ½»¬±ä»¯ÑÕÉ«
End With
string =strr
Form1.Current X=i ¡¯Á¬Ðø¸Ä±ä×ø±ê
Form1.Current Y=i
Form1.Print stringg ¡¯ÏÔʾ×Ö·û´®
i = i +1
If i >72 Then ¡¯·Å´óµ½72ºÅ×Ö
j =j +1 ¡¯Ñ­»·¼ÆÊý
i =0
Form1.Current X=72
Form1.Current Y=72
Form1.ForeColor =RGB(255,56,0) ¡¯ÖØÐÂÏÔʾһ´Î×Ö·û
Form1.Print stringg
End If
If j =5 Then ¡¯¶¯»­¼ÆÊý
Frame1.Visible =1 ¡¯ÏÔʾÈÝÆ÷¿Ø¼þ
timer1.Enabled =False ¡¯¹Ø±Õʱ¼ä¿Ø¼þ
Form1.WindowState=0 ¡¯»Ö¸´´°¿Úģʽ
End If
End Sub
    ÒÔÉÏ·½·¨¼°³ÌÐòÔÚWINDOWS 95ϵͳÏ£¬ÔÚVB4.0»·¾³Ïµ÷ÊÔͨ¹ý¡£
ÓÃVBʵÏÖÈ«ÆÁĻͼÐνçÃæ¼°¶¯Ì¬¹¦ÄÜÌáʾ
Íõ»ª ÕÅêÍ »ÆÈó·¢
Ò»¡¢ È«ÆÁĻͼÐνçÃæÉè¼Æ
    Í¼ÐνçÃæÊÇÏÖ´úÈí¼þÖÐÈË»ú½»»¥µÄÖ÷ÒªÊֶΡ£ÎªÁË×·Çó½çÃæµÄͳһºÍÃÀ¹Û£¬ÔÚÈí¼þ¿ª·Å¹ý³ÌÖУ¬Í¼ÐνçÃæ´ó¶à²ÉÓÃÈ«ÆÁÄ»¹¹Í¼·½Ê½¡£ÕâÊÇͨ¹ý½«´°ÌåµÄ±ß¿òÉèÖÃΪÎޱ߿ò£¨BorderStyle=None£©£¬½«´°ÌåÏÔʾģʽÉèÖÃΪ¼«´ó»¯£¨WindowState=Maximized£©À´ÊµÏֵġ£
    µ±Ò»¸ö´°Ìå½çÃæµÄÉè¼ÆÖÐÒªÈÝÄɶàÕÅͼƬºÍ¶à¸ö¿ØÖÆÊ±£¬½«³öÏÖ´°ÌåÏÔʾËÙ¶ÈÃ÷ÏÔ±äÂýµÄÏÖÏó£¬ÑÏÖØÓ°ÏìÁ˳ÌÐòÔËÐеÄÁ÷³©ÐÔ¡£ÎªÁ˽â¾öÕâÒ»ÎÊÌ⣬ÔÚ¿ª·Å¹ý³ÌÖУ¬²ÉÓÃÁËÒ»ÖÖ½«¡¾½çÃæÉè¼Æ´°Ìå¡¿Ó롾¹¦ÄÜʵÏÖ´°Ìå¡¿·Ö¿ª´¦ÀíµÄ·½·¨¡£
    ÔÚ¡¾½çÃæÉè¼Æ´°Ìå¡¿ÖУ¬Ê×ÏȰ´¹¦ÄܵÄÐèÒªºÍ½çÃæÉè¼ÆµÄ´´Ò⣬½«ËùÐèµÄ´óÁ¿Í¼Æ¬ºÍ¿ØÖÆÔÚÆÁÄ»Éϰ²Åźã¬Ñ¡ÔñÃÀ¹ÛµÄ×ÖÌå¡¢ÑÕÉ«¡¢ÏßÐÍ£¬¶ÔÆÁÄ»½çÃæ½øÐÐÉè¼Æ¡¢ÐÞÊμӹ¤£»È»ºóÔÚÆäÈ«ÆÁÄ»ÔËÐеÄ״̬Ï£¬ÀûÓüôÌù¼¼Êõ£¬½«ÕâÒ»Éè¼ÆÍê³ÉµÄͼÐνçÃæÈ«ÆÁÄ»¸´ÖƵ½¼ôÌù°åÉÏ£»½Ó׎«ÕâÒ»ÆÁĻӳÏó×÷ΪһÕÅͼƬճÌùÔÚ¡¾¹¦ÄÜʵÏÖ´°Ìå¡¿µÄ±³¾°ÉÏ¡£ÕâÑù£¬´ÓÍâ¹ÛÉÏ¿´£¬Á½¸ö´°ÌåµÄÐÎ×´ÍêÈ«Ïàͬ£¬¶øÔÚÆÁÄ»µÄÏÔʾËÙ¶ÈÉÏ£¬ºóÕßÃ÷ÏÔ¼Ó¿ì¡£Õâʱ£¬¡¾¹¦ÄÜʵÏÖ´°Ìå¡¿ÖеĿؼþÒѱä³ÉÒ»¸öÏóÕ÷ÐÔµÄͼ±ê£¬¶ÔËüµÄ²Ù×÷£¬¿ÉÔÚ¿ØÖÆÍ¼±êµÄ¶ÔӦλÖÃÉÏÉèÖÃÒ»¸öImage ÀàÐ͵ÄͼÏó¿ò£¬Í¨¹ý¶ÔͼÏó¿òµÄ²Ù×÷£¬À´´úÌæÔ­ÏȶԿØÖƶÔÏóµÄ²Ù×÷¡£
    ²ÉÓÃÕâÖÖ·½·¨£¬Ê¹´°Ìå½çÃæÉè¼ÆµÄÁé»îÐÔ´ó´óÔö¼Ó£¬¿ÉÒÔÈÎÒâ·¢»Ó£¬¶ø²»Óõ£ÐĿؼþ¡¢Í¼Æ¬Ì«¶à£¬Ó°Ïì´°ÌåµÄÏÔʾËÙ¶È¡£µ«²ÉÓÃÕâÖÖ·½·¨£¬½«²»¿É±ÜÃâµØÔö¼ÓÓ¦ÓóÌÐò±¾ÉíËùÕ¼µÄ´æ´¢ÈÝÁ¿£¬ÕâÊÇÒÔÈÝÁ¿»»È¡ËٶȱØÐ븶³öµÄ´ú¼Û¡£
¶þ¡¢ ¶¯Ì¬¹¦ÄÜÌáʾÐÅÏ¢µÄʵÏÖ
    ÔÚÏÖ´úÈí¼þÉè¼ÆÖУ¬¶àÊý¹¦ÄÜͼ±ê¡¢°´Å¥¶¼ÔÚ½çÃæÉÏÖ±½ÓÈ·¶¨Æä¶ÔÓ¦µÄÃû³Æ£¬Í¬Ê±Ò²ÌṩÁ˶¯Ì¬ÌáʾµÄ¹¦ÄÜ£¬¼´µ±Êó±êÒÆÖÁijһ¿Ø¼þʱ£¬»òʹÊó±êµÄÐÎ×´ÓÃÒ»¾ßÓÐÏóÕ÷ÒâÒåµÄͼ±ê´úÌæ£¬»ò×Ô¶¯³öÏÖÒ»ÌõÎÄ×ÖÌáʾ£¬ÏÂÃæ½éÉÜÒ»ÏÂÈçºÎʵÏÖÕâÖÖÏȽøµÄÌáʾģʽ¡£
    ¶¯Ì¬¸Ä±äÊó±êµÄͼÐÎÐÎ×´£¬ÊÇͨ¹ý¿Ø¼þµÄMousePointerÊôÐÔÉèÖÃΪ13£¨×Ô¶¨Ò壩£¬È»ºóÔÚMouseIeonÊôÐÔÖÐѡȡһICOͼ±êÎļþÀ´Íê³ÉµÄ£»¶¯Ì¬ÎÄ×ÖÌáʾ¹¦ÄÜÊÇÀûÓÿؼþµÄMouseMoveʼþÀ´ÊµÏֵģº½«¹¦ÄÜÌáʾ´¦Àí³ÌÐòÉè¼ÆÔÚ¶ÔÓ¦µÄMouseMoveʼþ¹ý³ÌÖУ¬µ±Êó±êÒÆ¶¯µ½¸Ã¿Ø¼þ·¶Î§ÇøÓòʱ£¬¼´¿É´¥·¢³ÌÐòÖ´ÐУ¬Íê³É¶¯Ì¬¹¦ÄÜÌáʾ£»ÎªÁË·ÀÖ¹´¦Àí³ÌÐò·´¸´´¥·¢£¬±ØÐëÉèÖÃÒ»¿ØÖÆ¿ª¹Ø£¬Ê¹´¦Àí³ÌÐòÖ»ÔÚÊó±êµÚÒ»´Î´¥·¢¸Ã¿Ø¼þÇøÓòʱ±»Ö´ÐУ»È¡Ïû¹¦ÄÜÌáʾµÄ´¦Àí³ÌÐòÉè¼ÆÔÚ´°ÌåµÄMouseMoveʼþÖУ¬ËµÃ÷³ÌÐòÈçÏ£º
Dim FirstTouch As Boolean '·ÀÖ¹·´¸´´¥·¢´¦Àí³ÌÐòµÄ¿ØÖƱäÁ¿
Private Sub ControlObject- MouseMove ()
If FirstTouch Then
FirstTouch =False 'ÏÔʾ¹¦ÄÜÌáʾ×Ö·û
End Sub
¡¡
Private Sub Form- MouseMove ()
FirstTouch =True 'È¡Ïû¹¦ÄÜÌáʾ×Ö·û
End Sub
Visual Basic´°Ìå±³¾°»¨ÎƵÄʵÏÖ
    ÎÒÃÇÔÚ¿ª·¢Èí¼þ¹ý³ÌÖУ¬ÎªÌá¸ßÈí¼þµÄÉÌÆ·»¯³Ì¶È£¬¸Ð¾õµ½½çÃæµÄÃÀ¹Û³Ì¶ÈÊÇÒ»¸öÈí¼þÄÜ·ñ»ñµÃ³É¹¦µÄÒ»¸öÖØÒªÒòËØ£¬ÎÒÃÇ×ÐϸÑо¿ÁËһЩ³É¹¦µÄÉÌÆ·»¯Èí¼þ£¬´ÓÕâЩÈí¼þÉÏ¿ÉÒÔ¿´µ½,³ÌÐò´°¿Ú±³¾°ÄÜÏÔʾ³ö·Ç³£ÃÀÀöµÄ¡¢¸»ÓÐÁ¢Ìå¸ÐµÄ»¨ÎÆ¡£¶ø²ÉÓÃVisual Basic½øÐд°ÌåÉè¼Æ£¬ÈôÖ»°´ÕÕϵͳÌṩµÄ¹¦ÄÜ£¬Ö»ÄÜ´ÓÓÐÏ޵ļ¸ÖÖÑÕÉ«ÖÐÑ¡ÔñÒ»ÖÖÑÕÉ«»ò²ÉÓóÌÐò»æÖÆÒ»Ð©¼òµ¥µÄÏßÌõ¡£¶øÏëʵÏÖÁ¢Ìå¸ÐºÜÇ¿µÄÎÆÀíͼ°¸£¬Ò»°ãÖ»ÄܲÉÓô°ÌåµÄPICTUREÊôÐÔµ÷ÓÃλͼÎļþ£¬Ê¹ÓÃÕâÖÖ·½·¨ÊµÏÖÓÐÐí¶àȱµã ,ÆäÒ»ÊÇ´°Ìå´óСÊÜλͼ´óСµÄÏÞÖÆ£¬µ÷ÕûÆðÀ´Âé·³£¬²»¾ßÓÐͨÓÃÐÔºÍÁé»îÐÔ£»Æä¶þÊÇÀË·Ñ×ÊÔ´£¬ÒòΪ»¨ÎÆÍ¼°¸»ù±¾ÉÏÊÇÖØ¸´Í¼°¸£¬²ÉÓÃÓë´°ÌåͬÑù´óСµÄλͼÊÇÒ»ÖÖÀË·Ñ¡£
    ÏÂÃæ½éÉÜÒ»ÖÖ´°Ìå±³¾°»¨ÎÆÊµÏֵķ½·¨¡£ÔÚ´°ÌåÉϽ¨Á¢Ò»¸öÍø¸ñ¿Ø¼þ£¬Éè¶¨Íø¸ñÐв»¿É¼û£¬È¥µô¹Ì¶¨Ðк͹̶¨ÁУ¬ÓóÌÐòʵÏÖÍø¸ñ¿Ø¼þÓë´°ÌåͬÑù´óС£¬²¢Ëæ´°Ìå´óСµÄ¸Ä±ä¶ø¸Ä±ä¡£È»ºóÉè¼ÆÒ»¸ö»¨ÎÆÍ¼°¸£¬ÐγÉBMPλͼÎļþ(±¾ÎijÌÐòʹÓÃÎļþPict1.bmp)£¬»òÕß´ÓÆäËüͼÏóÖнØÈ¡Ò»¶Îͼ°¸,Ò²¿ÉÒÔÀûÓÃWindowsϵͳÌṩµÄͼ°¸£¨Èçc:\windows\Tiles.bmp)£¬½«Æäµ÷ÈëPicture¿Ø¼þ¡£Éè¶¨Íø¸ñµÄÿ¸öµ¥ÔªÓë¸Ãͼ°¸´óСÏàͬ£¬Ê¹µ¥ÔªµÄÊýÁ¿ÕýºÃ¸²¸ÇÕû¸ö´°Ìå±³¾°£¬ÔÙ½«ËùÓе¥Ôª¾ùÏÔʾ¸Ãͼ°¸¡£Í¨¹ý×Ó³ÌÐòBackpict()ʵÏÖÒÔÉϹý³Ì£¬²»ÂÛͼ°¸´óС¡¢´°Ìå´óС£¬³ÌÐò¶¼ÄÜ×Ô¶¯µ÷ÕûÍø¸ñ¿Ø¼þ´óСºÍÍø¸ñµ¥Ôª´óС¼°µ¥ÔªÊýÁ¿¡£
    ¸Ã³ÌÐòÔÚVisual Basic 5.0Éϵ÷ÊԳɹ¦¡£
    1.н¨´°ÌåForm1,ÊôÐÔÈçÏ£º
    Caption =¡°±³¾°»¨ÎƵÄʵÏÖ¡±
    Borderstyle=3(ÎÞ×î´ó¡¢×îС»¯°´Å¥£©
    2.½¨Íø¸ñ¿Ø¼þGrid1,ËüµÄλÖúʹóС½«ÔÚ³ÌÐòÖÐÉèÖã¨ÓëForm1ͬÑù´ó£©,ÊôÐÔΪ£º
    Enabled = False£¨½¹µã²»»áÂäÔÚÍø¸ñ¿Ø¼þGrid1ÉÏ£©
    Fillstyle=1£¨¸Ä±äËùÓе¥ÔªTextÌØÐÔ£©
    Fixedcols=0£¨Î޹̶¨ÐУ©
    Fixedrows=0£¨Î޹̶¨ÁУ©
    Gridlines = False£¨Íø¸ñÐв»¿É¼û£©£¬
    Visible = True
    3.½¨Á¢Í¼Ïó¿Ø¼þPicture1,³ÌÐòÔËÐÐʱ½«±³¾°»¨ÎÆ»ù±¾Í¼°¸·ÅÈëÆäÖУ¬ÊôÐÔΪ
    Visible = False£¨²»¿É¼û£©
    Autosize = True£¨×Ô¶¯µ÷Õû´óС£©
    4.¿Ø¼þÖмÓÈëSheridan 3D Controls,ѡȡÆäÖеÄÈýάÃüÁî°´Å¥SSCommand,½¨Á¢Á½¸ö°´Å¥
    SSCommand1.Caption=¡°Í˳ö¡±
    SSCommand2.Caption=¡°¸ü»»±³¾°¡±£¨ÑÝʾ²»Í¬µÄ±³¾°Í¼°¸£©
    ËüÃǵÄÊôÐÔPicture¿Éµ÷ÓÃÓë±³¾°Ïàͬ»ò²»Í¬µÄͼ°¸£¬Èç¹ûʹÓÃÆÕͨµÄÃüÁî°´Å¥¿Ø¼þCommandÒ²¿É£¬Ö»ÊÇÃüÁî°´Å¥ÎÞ±³¾°Í¼°¸¡£
    5.½¨Á¢±³¾°Í¼°¸ÐγÉ×Ó³ÌÐò£º
    Dim pictfile As String 'λͼÎļþÃû
    Dim FILEPATH As String 'Îļþ·¾¶
    Sub Backpict(pictfile)
    picture1.ScaleMode = 3
    Form1.ScaleMode = 3
    picture1.Picture = LoadPicture(pictfile)
    'Íø¸ñ¿Ø¼þ¸²¸ÇÕû¸ö´°Ìå±³¾°
    grid1.Top = -1
    grid1.Left = -1
    grid1.Width = Width
    grid1.Height = Height
    grid1.Cols=Int(Form1.ScaleWidth/picture1.ScaleWidth) + 1
    grid1.Rows=Int(Form1.ScaleHeight/picture1.ScaleHeight) + 1
    'ËùÓе¥Ôª´óСµÈÓÚ»ù±¾Í¼°¸´óС
    For i = 0 To grid1.Cols - 1
    For j = 0 To grid1.Rows - 1
    grid1.ColWidth(i) = picture1.ScaleWidth * 15
    grid1.RowHeight(j) = picture1.ScaleHeight * 15
    Next j
    Next I
¡¡
    'Ñ¡¶¨ËùÓе¥Ôª
    grid1.SelStartCol = 0
    grid1.SelStartRow = 0
    grid1.SelEndCol = grid1.Cols - 1
    grid1.SelEndRow = grid1.Rows - 1
    grid1.Picture = Picture1.Picture
    End Sub
¡¡
    6.´°ÌåÖ÷³ÌÐò
Private Sub Form_Load()
Private Sub Form_Load()
¡¡
'µÃµ½ÔËÐгÌÐò·¾¶Ãû£¬Â·¾¶Ãûºó´ø·´Ð±¸Ü
If Right(App.Path, 1) <> "\" Then
filePath = App.Path & "\"
Else
filePath = App.Path
End If
'´°Ìå³õʼÏÔʾÓÉTiles.bmp»ù±¾Í¼°¸×é³ÉµÄ±³¾°
pictfile = "c:\windows\Tiles.bmp"
backpict (pictfile)
End Sub
    7.Í˳ö³ÌÐòÃüÁî°´Å¥
Private Sub SSCommand1_Click()
End
End Sub
    8.ÑÝʾ²»Í¬µÄµ×ÎÆÍ¼°¸
Private Sub SSCommand2_Click()
¡¡
'Á½ÖÖ±³¾°Í¼°¸½»ÌæÑÝʾ
If pictfile = filePath & "Pict1.bmp" Then
pictfile = "c:\windows\Tiles.bmp"
Else
pictfile = filePath & "Pict1.bmp"
End If
Backpict (pictfile)
End Sub
VB±à³ÌµÄһЩÐĵÃ
    ÔÚ´óѧ×÷±ÏÒµÉè¼ÆµÄ¿ÎÌâÊDZàÖÆÒ»¸ö½ÌѧÈí¼þ£¬ËùÒÔºÜ×ÔÈ»µØºÍVBÕâÖÖÒ×ѧ¡¢Ò×¶®¡¢½çÃæÓÑºÃÆ¯ÁÁµÄÓïÑÔ´òÉÏÁ˽»µÀ¡£ÔÚ±àдµÄ¹ý³ÌÖе±È»Óöµ½ÁËÐí¶àµÄÎÊÌ⣬ÕâÀォһЩ¼òµ¥µÄС³ÌÐòдÏÂÀ´Óëϲ°®±à³ÌµÄÅóÓÑÃÇ·ÖÏí¡£
Ò»¡¢·âÃæ
    ·âÃæµÄÉè¼ÆÊÇÕâÑùµÄ£¬ÏȳöÏÖÒ»´°Ì壬ÉÏÃæÎªÄãϲ»¶µÄͼ°¸¡£È»ºó³öÏÖÒ»ËÒ´Ó×óÏòÓÒÐÐÊ»×ŵĴ¬¡£ÆÁÄ»ÉÏ·½´ÓÁ½²à·Ö±ðÒÆ¶¯³ö¡°»¶Ó­¡±Á½¸ö×Ö¡£
    ¾ßÌåµÄÖÆ×÷·½·¨ÊÇ£º°ÑÔ¤ÏÈÑ¡ºÃµÄ±³¾°Í¼°¸×°Èë·âÃæ´°ÌåÖУ¬´°ÌåÃüÃûΪCAI¡£ÔÙ·Ö±ðÔÚÈý¸öͼÏñ¿Ø¼þ(image)ÖÐ×°ÈëÔ¤ÏÈÖÆ×÷ºÃµÄλͼ¡°»¶¡±¡¢¡°Ó­¡±ºÍ´¬ÐÍͼ°¸¡£È»ºó°ÑÈý¸öimage·ÅÖÃÔÚ³õʼλÖÃ(¼´ ͼ°¸¸ÕÔÚ´°Ìå³öÏÖʱµÄλÖÃ)£¬²¢°ÑËüÃǵĿÉÊÓÊôÐÔ¶¼ÉèÖÃΪ¡°false¡±¡£³ÌÐòÈçÏ£º
Sub Form_load()
cai.Show ¡äÏÔʾ·âÃæ´°Ìå
Dim i ¡ä¶¨Òå±äÁ¿
image3.visible=True ¡ä´¬ÐÍͼÏñ¿Ø¼þ³öÏÖ
a1: If image3.Left <6120 Then
¡ä6120Ϊ´¬Òƶ¯µ½ÆÁÄ»ÓұߵÄ×ø±ê,´ËÖµ¿ÉÒÔËæÐèҪѡȡ
image3.Move image3.Left£«50
¡äÒÆ¶¯´ËͼÏñ¿Ø¼þÈçÏÓÒÆ¶¯Âý,¿É¸Ä±äÒÆ¶¯Öµ
Goto a1
End If
image1.visible=True ¡ä¡°»¶¡±×Ö³öÏÖ
a2: If image1.Left <2120 Then
¡ä2120Ϊ¡°»¶¡±×ÖÒÆ¶¯µ½ÆÁÄ»ÖмäµÄλÖÃ
image1.Move image1.Left£«50 ¡äÒÆ¶¯´ËͼÏñ¿Ø¼þ
Goto a2
End If
image2.visible=True ¡ä¡°Ó­¡±×Ö³öÏÖ
a3: If image2.Left > 5420 Then
¡ä5420Ϊ¡°Ó­¡±×ÖÒÆ¶¯µ½ÆÁÄ»ÖмäµÄλÖÃ
image2.Move image2.Left£­50 ¡äÒÆ¶¯´ËͼÏñ¿Ø¼þ
Goto a3
End If
For i=1 To 10000
¡äʹ´°ÌåÔÝÍ£Ò»¶Îʱ¼äʱ¼ä³¤¶Ì¿Éͨ¹ý¸Ä±äÑ­»·´ÎÊýʵÏÖ
Next i
menul.Show ¡äÏÔʾ³ÌÐòÖ÷´°Ìå
Unload cai ¡äÐ¶ÔØ·âÃæ´°Ìå
End Sub
¶þ¡¢¼òµ¥µÄ¡°¶¯»­¡±
    µã»÷Ò»3D°´Å¥ºó£¬ÆÁÄ»±íÏÖ¹âÏ߯½ÐнøÈëÒ»²£Á§¹Ü£¬ÔÚ¹ÜÖÐÓÐһɢÉäÖÐÐÄ£¬ÓеĹâÏßÉäµ½´ËÖÐÐĺó·´Éäµ½¹ÜµÄ³õʼ¶Ë¡£³ÌÐòÈçÏ£º
Sub Command3Dl_Click()
Dim i, j, k, m, n ¡ä¶¨Òå±äÁ¿
For i=2080 To 5520
¡äÏÔʾ³öÈýÌõÏß,Ö±µ½Í¼ÏñÖеÄÉ¢ÉäÖÐÐÄ´¦,ÑÕɫΪºÚÉ«
Line(2080,2760)£­(i,2760),RGB(0, 0, 0)
Line(2080,2860)£­(i,2860),RGB(0, 0, 0)
Line(2080,2660)£­(i,2660),RGB(0, 0, 0)
Next i
For j=5520 To 4800 Step£­1 ¡ä·´Éä¹âÏßµÚÒ»´ÎÉäµ½¹Ü±ÚÉÏ
Line(5520,2760)£­(j,2760£­(5520£­j)£ª.33333333),RGB
(255, 0, 0) ¡ä·´Éä¹âÏß,ÑÕɫΪºìÉ«
Line(5520,2660)£­(5520£«(5520£­j),2660),RGB(0, 0, 0)
Line(5520,2860)£­(5520£«(5520£­j),2860),RGB(0, 0, 0)
¡äûÓÐÓöµ½É¢ÉäÖÐÐĵÄÁ½Ìõ¹âÏß,ΪºÚÉ«,¼ÌÐøÇ°½ø
Next j
For k=4800 To 3360 Step£­1 ¡ä·´Éä¹âÏßµÚ¶þ´ÎÉäµ½¹Ü±ÚÉÏ
Line(4800,2520)£­(k,2520£«(4800£­k)£ª.33333333),
RGB(255, 0, 0) ¡ä·´Éä¹âÏß,ÑÕɫΪºìÉ«
Line(6240,2660)£­(6240£«(4800£­k),2660),RGB(0,0,0)
Line(6240,2860)£­(6240£«(4800£­k),2860),RGB(0,0,0)
¡äûÓÐÓöµ½É¢ÉäÖÐÐĵÄÁ½Ìõ¹âÏß,ÑÕɫΪºÚÉ«
Next k
For m=3360 To 2080 Step£­1 ¡ä·´Éä¹âÏßµÚÈý´ÎÉäµ½¹Ü±ÚÉÏ
Line(3360,3000)£­(m,3000£­(3360£­m)£ª.33333333),
RGB(255, 0, 0) ¡ä·´Éä¹âÏß,ÑÕɫΪºìÉ«
Next m
End Sub
Èý¡¢·âµ×
    ·âµ×µÄÉè¼ÆÊÇ£ºÏȳöÏÖÈ«ºÚµÄÆÁÄ»£¬È»ºó´ÓÉÏÖÁÏÂÖð½¥À­³ö°×µ×ºì×ֵġ°ÔÙ¼û¡±µÄ×ÖÑù¡£ÏȰ´ÒªÇóÔÚ»­°åÖÐ×öÒ»¸öBMPͼ£¬ÉÏÃæÐ´×Å¡°ÔÙ¼û¡±¡£È»ºóÔÚÒ»ÃûΪBYEµÄ´°ÌåÖмÓÈëÒ»¸öÈ«ÆÁ´óµÄPicturel, ½«BMPͼװÈë¡£³ÌÐòÈçÏ£º
Sub Form_Load()
Dim i ¡ä¶¨Òå±äÁ¿
bye.Show ¡ä·âµ×³öÏÖ
Unload menu1 ¡äÐ¶ÔØÖ÷²Ëµ¥
al: If picture1.Height <7130 Then ¡ä7130ΪͼµÄ¸ß¶È
picturel.Height=picture1.Height£«50 ¡äÏÂÀ­ÆÁÄ»
GoTo al
End If
For i=1 To 20000 ¡äʹ´°ÌåÔÝÍ£Ò»¶Îʱ¼ä
Next i
End ¡ä½áÊøËùÓвÙ×÷
End Sub
´¦Àí¹ý³ÌʱµÄÊó±êÏÔʾ
    ÎªÈÃÄãµÄ³ÌÐò¸ü¼Óרҵһµã£¬ÎÒÃÇÍùÍùÐèÒªÔÚ³ÌÐò´¦Àí¹ý³ÌʱµÄÊó±êÐÎ×´ÏÔʾΪ¡°É³Â©¡±×´Ì¬¡£ÎÒÃÇÒ»°ãµÄ·½·¨ÊÇÔÚ×Ó³ÌÐòµÄ¿ªÊ¼¼°½áβ±à³ÌÀ´¸Ä±äÊó±êÐÎ×´£¬ÕâÑùÊ®·Ö·³ËöÇÒÈÝÒ×Íü¼Ç¡£ÎÒÃÇ»¹¿ÉÒÔÒÔÏÂÃæµÄ·½·¨À´ÊµÏÖÕâһĿ±ê£º
    1¡¢´´½¨Ò»¸öÐÂÀ࣬ÃüÃûΪ£ºCHourGlass£»
    2¡¢ÔÚ´ËÀàÖмÓÈëÒÔÏ´úÂ룺
      Private Sub Class_Initialize()
      Screen.MousePointer = vbHourglass
      End Sub
      Private Sub Class_Terminate()
      Screen.MousePointer = vbDefault
      End Sub
    3¡¢ÔÚ×Ó³ÌÐòµÄ¿ªÊ¼¼ÓÈëÏÂÃæ´úÂ룺
      Dim MyHourGlass As CHourGlass
      Set MyHourGlass = New CHourGlass
Office»òIE4·ç¸ñµÄToolBar
    ÓÃAPI ¿ÉÒÔÇáËɸıä ToolBar µÄ·ç¸ñ¡£ÐèÒª 4.70 »òÆäÒÔÉϰ汾µÄ comctl32.dll Ö§³Ö¡£
    ÉùÃ÷£º
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Integer, ByVal lParam As Any) As Long
Private Declare Function FindWindowEx Lib "user32" Alias _
"FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 _
As Long, ByVal lpsz1 As String, ByVal lpsz2 As _
String) As Long
Private Const WM_USER = &H400
Private Const TB_SETSTYLE = WM_USER + 56
Private Const TB_GETSTYLE = WM_USER + 57
Private Const TBSTYLE_FLAT = &H800
Private Const TBSTYLE_LIST = &H1000
    º¯Êý£º
' tlbToolbarStyle :
'1 Ϊ Office97 ·ç¸ñ
'2 Ϊ IE4 ·ç¸ñ
Public Sub ToolbarStyle(tlb As Toolbar, _
tlbToolbarStyle As Long)
Dim lngStyle As Long
Dim lngResult As Long
Dim lngHWND As Long
' Find child window and get style bits
lngHWND = FindWindowEx(tlb.hwnd, 0&, _
"ToolbarWindow32", vbNullString)
lngStyle = SendMessage(lngHWND, _
TB_GETSTYLE, 0&, 0&)
' Use a case statement to get the effect
Select Case tlbToolbarStyle
Case 1:
' Creates an Office 97 like toolbar
lngStyle = lngStyle Or TBSTYLE_FLAT
Case 2:
' Creates an Explorer 4.0 like toolbar,
' with text to the right
' of the picture. You must provide text
' in order to get the effect.
lngStyle = lngStyle Or TBSTYLE_FLAT _
Or TBSTYLE_LIST
Case Else
lngStyle = lngStyle Or TBSTYLE_FLAT
End Select
' Use the API call to change the toolbar
lngResult = SendMessage(lngHWND, _
TB_SETSTYLE, 0, lngStyle)
¡¡
' Show the effects
tlb.Refresh
End Sub
    ÔÚ Form ×°Èëʱµ÷ÓÃ:
Private Sub Form_Load()
Call ToolbarStyle(Me.Toolbar1, 2)
' ¡­
End Sub
    ¹ØÓÚToolBar ·ç¸ñµÄ˵Ã÷£º
    Office ·ç¸ñµÄ Toolbar ÊÇÖ¸ÔÚÊó±êÒÆ¶¯µ½ ICON ºó£¬»á³öÏֱ߿ò¡£ÈçÎÒÃÇÔÚ VB5 ÖÐÓõÄÒ»Ñù¡£¶øcomctlµÄToolBarÊÇûÓиÃЧ¹ûµÄ¡£
    IE4 ·ç¸ñµÄ Toolbar ¿ÉÒÔÔÚICON ÏÂÃæ³öÏÖÎÄ×Ö£¬Èçͬ IE4 ÖеÄToolbar Ò»Ñù¡£(¿ÉÄÜÊÇ·´Ò»Ï¡­¡­ )
·ÅÒ»¸öComboµ½ToolbarÖÐ
    1. ·ÅÒ»¸ö ComboBox µ½±íµ¥.
    2. ·ÅÒ»¸ö Toolbar?ÔÚ±íµ¥.
    3. Ôö¼ÓÏÂÃæµÄ´úÂëµ½ Form1 :
Private Sub Form_Load()
Dim btn As Button
Me.Show
Set btn = Toolbar1.Buttons.Add()
btn.Style = tbrSeparator
Set btn = Toolbar1.Buttons.Add()
btn.Style = tbrPlaceholder
btn.Key = "ComboBox"
btn.Width = 2000
With Combo1
.ZOrder 0
.Width = Toolbar1.Buttons("ComboBox").Width
.Top = Toolbar1.Buttons("ComboBox").Top
.Left = Toolbar1.Buttons("ComboBox").Left
End With
End Sub
ÔÚVisual BasicÖÐÈçºÎÍ϶¯´°Ìå»ò¿Ø¼þ
    ÏÖÔÚµÄÐí¶àWindowsϵÄÓ¦ÓóÌÐò£¬¶¼²ÉÓÃÁËͼÐλ¯µÄ½çÃæ£¬ÀýÈ磺WINAMPµÈ£¡ÕâÑù×öµÄºÃ´¦ÊÇ¿ÉÒÔʹ³ÌÐò½çÃæ¸üƯÁÁÉú¶¯£¬¸ü¾ßÎüÒýÁ¦¡£µ«ÊÇÔÚÕâÑùµÄ½çÃæÏ¾Ͳ»ÄÜʹÓÃWindowsÔ­À´µÄ±êÌâÌõÁË£¬·ñÔò»áÓ°Ïì½çÃæµÄÃÀ¹ÛÐÔ¡£ÄÇôÔÚûÓбêÌâÌõµÄÇé¿öÏÂÈçºÎÓÃÊó±êÍ϶¯´°ÌåÄØ£¿»òÕßÍ϶¯ÆäËüµÄ¿Ø¼þÄØ£¿
    Æäʵ£¬²ÉÓÃAPIº¯Êýµ÷ÓúÜÈÝÒ×ʵÏÖ£¬ÏÂÃæÎÒÃÇÒÔÍ϶¯´°Ìå(Form1)ΪÀýÀ´¾ßÌå½²Ò»ÏÂʵÏÖ·½·¨£º
    1.н¨Á¢Ò»¸öÏîÄ¿£¬Ãû³ÆÎª£ºtest.vbp.
    2. Ìî¼ÓÒ»¸öÄ£¿é£¬Ãû³ÆÎª£ºtest.bas,²¢ÇÒÔÚÉùÃ÷²¿·Ö¼ÓÈëÒÔÏ´úÂ룺
        Declare Function ReleaseCapture Lib "user32" () As Long
        Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
        Public Const WM_SYSCOMMAND = &H112
        Public Const SC_MOVE = &HF012
    ÆäÖÐReleaseCaptureº¯ÊýÊÇÓÃÀ´ÊÍ·ÅÊó±ê²¶»ñµÄ£¬SendMessageº¯ÊýÊÇÒ»¸öÔÚWindowsAPIÖзdz£ÖØÒªµÄº¯Êý£¬ÔÚÕâÀïµÄ×÷ÓÃÊÇÓÃÀ´ÏòWindows·¢ËÍÒÆ¶¯´°ÌåµÄÏûÏ¢¡£WM_SYSCOMMANDÊÇÏòWindows·¢ËÍÏûÏ¢µÄ³£Á¿¡£SC_MOVEÊÇ¿ØÖÆÒƶ¯´°ÌåµÄ³£Á¿¡£Çë×¢Ò⣺ÕâÀïSC_MOVEµÄ¸³ÖµÒ»¶¨ÒªÊÇ&HF012£¬Ëü±íʾÊó±ê¶ÔÏó¡£
    3.ÔÚ´°ÌåµÄMouseDown¹ý³ÌÖмÓÈëÒÔÏ´úÂ룺
        ReleaseCapture
        SendMessage Form1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0
    ÆäÖÐReleaseCaptureº¯ÊýÓÃÀ´ÊÍ·ÅÊó±ê²¶»ñ£¬SendMessageº¯ÊýÏòWindows·¢ËÍÒÆ¶¯´°ÌåµÄÏûÏ¢¡£
    4.±£´æ²¢ÔËÐгÌÐò£¬°´ÏÂÊó±ê£¬Äã»á·¢ÏÖ´°Ìå»áËæ×ÅÊó±êµÄÒÆ¶¯¶øÒƶ¯¡£¾ÍºÍÆäËüÖøÃûµÄÓ¦ÓóÌÐòÒ»Ñù¡£
    ÒÔÉϽ²ÊöÁËÈçºÎÔÚVBÖÐÓÃÊó±êÍ϶¯´°Ì壬Æäʵ£¬¿Ø¼þµÄÍ϶¯µÄÔ­ÀíÊÇÒ»ÑùµÄ¡£
    ÀýÈçÒÔÏ´úÂë¿ÉÒÔʵÏÖͼƬ¿òµÄÍ϶¯£º
        ReleaseCapture
        SendMessage Picture1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0
    Æäʵ£¬ÔËÓÃAPIº¯Êý¿ÉÒÔʵÏÖÐí¶àÄãÒâÏë²»µ½µÄ¹¦ÄÜ¡£Èç¹ûÐèÒª¸ü¶àÓйØVBµÄÆäËü¾­ÑéÓë¼¼ÇÉ¡£½¨Òé·ÃÎÊhttp://vb2000.kstar.comÕ¾µã¡£
Í϶¯ÎÞϵͳ±ê×¼±êÌâÀ¸µÄ´°¿Ú
Îâ±ó
¡¡¡¡´ó¼ÒÖªµÀ£¬ÔÚVBÖпÉÒÔͨ¹ýÉèÖÃFormµÄÊôÐÔ£¬ÖÆ×÷ÎÞϵͳ±êÌâÀ¸µÄ´°¿Ú¡£¿ÉÊÇ£¬ÓÉÓÚʧȥÁËϵͳ±êÌâÀ¸£¬ÈçºÎʹÓÃÊó±êÍ϶¯´°¿Ú±ã³ÉÁËÒ»¸ö¼¬ÊÖµÄÎÊÌâ¡£Æäʵ£¬½èÖúAPIº¯ÊýReleaseCaptureºÍSendMessage£¬Õâ¸öÎÊÌâ±ã¿ÉÓ­Èжø½âÁË¡£
¡¡¡¡Ê×ÏÈ£¬ÔÚmoduleÎļþÖмÓÈëÏÂÁÐÉùÃ÷Óï¾ä£º
¡¡¡¡Declare Sub ReleaseCapture Lib"User"()
¡¡¡¡Declare Function SendMessage Lib"User"(ByVal hWnd _
As Integer£¬ByVal wMsg As Integer£¬ByVal wParam As Integer£¬_lParam As Any)As Long
¡¡¡¡Public Const WM_SYSCOMMAND=&H112
¡¡¡¡Public Const SC_MOVE=&HF010
¡¡¡¡Public Const HTCAPTION=2
¡¡¡¡È»ºó£¬ÔÚFormµÄMouseDownʼþÖмÓÈëÏÂÁдúÂ룺
¡¡¡¡ReleaseCapture
¡¡¡¡Ret&=SendMessage(Me£®hWnd£¬WM_SYSCOMMAND£¬_SC_MOVE+HTCAPTION£¬0)
¡¡¡¡¡­¡­
¡¡¡¡³ÌÐòÔËÐкó£¬Ö»Òªµ±¹â±êÂäÔÚFormÇøÓòʱ°´×¡Êó±ê×ó¼ü£¬±ã¿ÉÒÔÍ϶¯´°¿ÚÁË¡£ÔÚһЩҪÇóÉú¶¯»îÆÃµÄ½çÃæµÄ³ÌÐòÉè¼ÆÖУ¬¿ª·¢Õß³£³£Ï£Íû×ÔÖÆ·ç¸ñ¶ÀÌØµÄ±êÌâÀ¸£¬ÒÔÂú×ãÕû¸ö½çÃæµÄÒªÇó¡£Í¨¹ýÕâ¸ö·½·¨£¬¾Í¿ÉÒÔʹ×ÔÖÆµÄ±êÌâÀ¸´ïµ½ÂÒÕæµÄµØ²½¡£²»¹ý£¬ÓÃ×÷×ÔÖÆ±êÌâÀ¸µÄ¿Ø¼þ£¬±ØÐë¾ßÓÐMouseDownʼþÒÔ°Ú·ÅÉÏÊö´úÂë¡£
ÒÆ¶¯Ã»ÓбêÌâÀ¸µÄ´°¿Ú
    ÎÒÃÇÒ»°ãÊÇÓÃÊó±ê°´×¡´°¿ÚµÄ±êÌâÀ¸£¬È»ºóÒÆ¶¯´°¿Ú£¬µ±´°¿ÚûÓбêÌâÀ¸Ê±£¬ÎÒÃÇ¿ÉÒÔÓÃÏÂÃæµÄ·½·¨À´Òƶ¯´°¿Ú£º
¡¡
ÔÚ BAS ÎļþÖÐÉùÃ÷£º
Declare Function ReleaseCapture Lib "user32" () As Long
Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" ( _
ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Public Const HTCAPTION = 2
Public Const WM_NCLBUTTONDOWN = &HA1
¡¡
È»ºó£¬ÔÚ Form_MouseDown ʼþÖУº
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End Sub
VB±à³ÌÖд°ÌåµÄ¿ØÖƼ¼ÇÉ
    ÔÚVisual BasicÖУ¬Ã¿¸öÓ¦ÓóÌÐò¶¼ÊÇ´Ó´°Ìå(Form)¿ªÊ¼µÄ£¬´°ÌåÊǹ¹³ÉÓû§½Ó¿ÚµÄËùÓпؼþµÄÈÝÆ÷¡£Â¼»îÔËÓô°ÌåµÄ¸÷ÏîÊôÐԺͲÙ×÷£¬¿ÉÒÔΪÓû§Éè¼Æ³öÉÍÐÄÔÃÄ¿µÄ²Ù×÷½çÃæ¡£
    1.´°ÌåÒÔµ±Ç°ÆÁÄ»·Ö±æÂÊÈ«ÆÁÏÔʾª¥
    ÔÚÓ¦ÓóÌÐòµÄ±àÖÆµ÷ÊÔ¹ý³ÌÖУ¬ÓÃÓÚ¾­³£Óõ½²Ëµ¥¡¢¹¤¾ßÌõºÍ¹¤¾ß¿òµÈ¸¨Öú¹¤¾ß£¬Ò»°ã²»½«´°ÌåÉèΪȫÆÁÏÔʾ£¬ÒÔ±ãÓÚ²Ù×÷£»ÁíÍ⣬µ±ÆÁÄ»·Ö±æÂʸıäʱ£¬´°Ìå¿ÉÄܲ»ÄÜÕý³£ÏÔʾ£¬¿ÉÒÔÔÚ´°ÌåµÄLoadʼþÖвåÈëÏÂÁдúÂ룬¼´¿Éʹ´°ÌåÆô¶¯Ê±ÒÔµ±Ç°ÆÁÄ»·Ö±æÂÊÈ«ÆÁÏÔʾ£º
Private Sub Form_Load()
Form1.top=0 ¡®ÉèÖô°ÌåÉϱ߽çλÖÃ
Form1.left=0 ¡®ÉèÖô°Ìå×ó±ß½çλÖÃ
Form1.Width=Screen.Width ¡®ÉèÖô°Ìå¿í¶ÈΪÆÁÄ»¿í¶È
Form1.Height=Screen.Height ¡®ÉèÖô°Ìå¸ß¶ÈΪÆÁÄ»¸ß¶È
End Sub
    2.ʹ´°Ìå±£³ÖÔÚ×îÉϲ㪥
    ÓÐʱӦÓóÌÐòÐèÒªÒ»¸öÐÅÏ¢»ò²éѯ´°Ìå×ܱ£³ÖÔÚ×îÉϲ㣬¼´Ê¹ÓöÁÊéÇл»µ½ÆäËû´°ÌåÒ²ÄÜ¿´µ½¸Ã´°Ì壬ÈçMicrosoft WordÖеÄFind´°Ì壬ÕâÊÇͨ¹ýµ÷ÓÃWindows APIº¯ÊýSetWindowPos()ʵÏֵģ¬Ê¾ÀýÈçÏ£ºª¥
Option Explicit
Private Declare Function SetWindowPos Lib¡°User32¡±(ByValhwnd As Long,ByVal h WndInsertAfter As Long,ByVal x As Long,ByVAl y As Long,ByVal cx As Long,ByVal cy As Long,ByVal wFlags As Long)As Long
Const HWND_TOPMOST=-1
Const SWP_SHOWWINDOW=&H40
Private Sub Form_load()
Dim retValue As Long
RetValue=setWindowPos(me.hwnd,HWND_TOPMOST,Me.CurrentX,Me.CurrentY,300,300,SWP_SHOWWINDOW)
End Sub
    3.´°Ìå×°ÈëËÙ¶ÈÂýµÄ´¦Àí¼¼Çɪ¥
    ÔÚȱʡÇé¿öÏ£¬Visual Basic×°ÈëºÍÏÔʾÏîÄ¿µÄµÚÒ»¸ö´°Ìå¡£Èç¹û´°Ìå×°Èë¹ý³Ì³¬¹ýÒ»Ã룬Óû§Ö»ºÃÄÍÐĵȴý£¬ÌرðÊÇÔÚ´°ÌåÖк¬ÓдóÐÍλͼ»òÐí¶à¿Ø¼þʱ¡£Æäʵ£¬Î¢ÈíÔÚOFFICE×é¼þÖÐÒѾ­ºÜºÃµØ´¦ÀíÁËÕâÒ»ÎÊÌâ¡£ÏÂÃæµÄ³ÌÐòÑÝʾÁË´¦ÀíµÍËÙ´°ÌåµÄ×°Èë¼¼ÇÉ£¬ÔÚÓ¦ÓóÌÐòÆô¶¯Ê±£¬Ê×ÏÈÆô¶¯Ò»¸ö¼òµ¥µÄ¿ìËÙ×°Èë´°Ì壬¿ÉÒÔ½«¹«Ë¾±êÖ¾»òÆäËûÐÅÏ¢ÏÔʾÔÚÉÏÃæ£¬È»ºóÔÚ¿ìËÙ´°Ìåºǫ́ÖÐ×°ÈëÂýËÙ´°Ì壬ÂýËÙ´°Ìå×°Èëºó½«¿ìËÙ´°Ìåж³ö£¬´Ó¶ø½â¾öÁËÈÃÓû§Ñá·³µÄµÈ´ýÎÊÌâ¡£ª¥
Private Sub Form_Load()
Form1.Show
Form1.Refresh
Load Form2 ¡®×°ÈëÂýËÙ´°Ìå
Form2.Show ¡®ÏÔʾÂýËÙ´°Ìå
End Sub
    Èç¹ûÊ¡ÂÔForm1.Show·½·¨£¬ÔòÐè×°ÈëÂýËÙ´°Ìåºó²ÅÄÜÏÔʾÐÅÏ¢´°Ìå¡£Refresh·½·¨ÈÃVisual Basic¸üÐÂÏÔʾºóÔÙÖ´ÐкóÃæµÄÃüÁȱʡÇé¿öÏ£¬Visual BasicÖ»ÔÚ²»Ö´ÐÐÆäËû´úÂëʱ£¬²ÅÓлú»áË¢ÐÂÏÔʾ¡£ÂýËÙ´°ÌåForm2×°Èëºó£¬ÓÃÏÂÁдúÂ뽫¿ìËÙ´°ÌåFomr1ж³ö£ºª¥
Private Sub Form_Load()
UnLoad Form1 ¡®Ð¶³ö¿ìËÙ´°Ìå
End Sub
    Ò»µ©×°Èë´°Ì壬Ëü¾ÍÕ¼ÓÃÁËËùÒªµÄ×ÊÔ´£¬ËùÒÔ²»ÔÙÐèÒªµÄ´°ÌåÓ¦¼°Ê±Ð¶³ö£¬½«Õ¼ÓõÄ×ÊÔ´½»»¹ÏµÍ³¡£ÁíÍ⣬ÓÉÓÚ´°Ìå×°Èë±È½ÏÂý£¬ÌرðÊǰüº¬Î»Í¼»òÆäËû×ÊÔ´µÄ´óÎļþ×°Èë¸üÂý£¬ËùÒÔÓ¦ÓóÌÐòÔËÐÐÆÚ¼äÓ¦¾¡Á¿±ÜÃâÆµ·±×°Èë/ж³ö´°Ì壬¶ø×îºÃÔÚÓ¦ÓóÌÐòÆô¶¯Ê±°Ñ´°Ìå×°ÈëÄڴ棬ÐèҪʱÔÙÏÔʾ¡£ª¥
ÀûÓÃVB¿ØÖÆ´°¿ÚÏÔʾ·ç¸ñ
¹ãÖÝ ¹ùÉÙÔ½
    Èí¼þ½çÃæÉú¶¯Óë·ñºÜ´ó³Ì¶ÈÉϾö¶¨ÓÚÄã¶Ô´°¿ÚµÄÉè¼ÆºÍ¿ØÖÆ¡£ÊÂʵÉÏ£¬Windows³ÌÐòÔ±¿ÉÒÔ¶ÔϵͳÖеÄÈκδ°¿Ú½øÐвÙ×Ý£¬ËüÒâζ×Å£¬Windows³ÌÐòÔ±¿ÉÒÔÖ±½Ó²Ù×ÝÈκÎÕýÔÚÔËÐеÄÓ¦Óô°¿Ú£»¿ÉÒÔ·¢ÏÖÒ»¸öÌØ¶¨µÄÓ¦ÓÃÊÇ·ñÔÚÔËÐУ¬Èç¹û¸ÃÓ¦ÓÃûÓÐÔËÐл¹¿ÉÒÔÆô¶¯Ëü£»¿ÉÒÔÖØÐÂÅÅÁÐÆÁÄ»ÉϵÄËùÓд°¿Ú£»»¹¿ÉÒÔʹÆäËûÓ¦ÓõĴ°¿Ú×î´ó»¯»ò×îС»¯¡£ÏÂÃæÎÒÃÇ̽ÌÖÒ»ÖÖÊ®·ÖÓÐÒâÒåµÄÓ¦Óá£
    ÎÒÃǺÜÏ£ÍûÔÚ³ÌÐò¼¤»îÆäËü´°¿ÚʱÈÔʹµÃ·âÃæ´°¿Ú´¦ÓÚǰ̨£¬Ò²¾ÍÊÇ˵¸Ã´°¿Ú¾ßÓС° ×ÜÔÚ×îÇ°Ãæ¡±£¨¡°Always On Top¡±£©ÕâÒ»ÌØÐÔ¡£ÆäʵMicrosoftϵÁÐÈí¼þ¶¼ÊÇÕâÑù×öµÄ£¬µ±ÄãÔËÐÐWord¡¢Excel»òPowerPointʱ£¬Äã»á·¢ÏÖËüÃǵķâÃæ´°¿Ú²»ËæÏµÍ³¼¤»îÆäËü´°¿Ú¶øÏûʧ¡£
    Visual Basic For Windows£¨ÒÔϼò³ÆVB£©×÷ΪһÖÖ¿ÉÊÓ»¯±à³ÌÈí¼þ£¬ÒÔÆäÓÅÐãµÄͼÐλ¯½çÃæÉè¼Æ·ç¸ñ¶øÖø³Æ¡£ÀûÓÃËü¿ÉʹÈí¼þ¿ª·¢ÖÜÆÚ´óΪËõ¶Ì£¬È»¶øVB¶ÔWindows DLL£¨¶¯Ì¬Á´½Ó¿â£©µ÷ÓõÄÇ¿´ó¹¦ÄÜÈ´Ò×Êܲ»ÉÙ³ÌÐòÔ±ËùºöÂÔ¡£ÊÂʵÉÏ£¬Áé»îÓ¦ÓÃWindows DLLµÄAPI£¨Ó¦ÓóÌÐò½Ó¿Ú£©²ÅÄÜʹÄ㿪·¢µÄϵͳ¸ü¼Ó³äÂú»îÁ¦¡£ÕýÊÇÓÉÓÚVBÖ§³ÖDLLʹµÃÎÒÃÇ¿ÉÒÔËæÐÄËùÓûµØ¿ØÖÆ´°¿ÚÏÔʾ·ç¸ñ£¬´Ó¶øÎÒÃÇ¿ÉÒÔÈÃϵͳ·âÃæ×Ü´¦ÓÚǰ̨£¬ÏÂÃæËµÃ÷Óõ½µÄAPIº¯Êý¡£
£®SetWindowPOS
VB¶¨Ò壺
Declare Sub SetWindowPosLib¡°User¡± £¨Bybal hWnd as Integer £¬hWndInsertAfter as Integer£¬ByVal £Ø as Integer£¬ByVal £Ù as Integer£¬ByVal cx as Integer £¬ByVal cy as Integer£¬ByVal wFlags as Integer£©
˵Ã÷£ºÄܸı䴰¿ÚµÄλÖúʹóС£¬²¢ÄÜÐ޸Ĵ°¿ÚÔÚÄÚ²¿´°¿ÚÁбíÖÐËù´¦µÄλÖã¬
ÒÔ¿ØÖÆÏÔʾ´ÎÐò¡£
²ÎÊý ÀàÐÍ£¯ËµÃ÷
hWnd Integer£­Ð趨λµÄ´°¿Ú
hWndInsertAfter Integer£­´°¿Ú¾ä±ú£¬ÔÚ´°¿ÚÁбíÀ
                                ´°¿ÚhWnd½«·ÅÔڸô°¿Ú¾ä±úµÄºóÃæ£¬Ëü¿ÉÒÔÈ¡ÒÔÏÂÖµ£º
                            hWnd£ßBOTTOM£º°Ñ´°¿Ú·ÅÔÚ´°¿ÚÁбíµÄµ×²¿£»
                            hWnd£­TOP£º°Ñ´°¿Ú·ÅÔÚ£ÚÐòµÄ¶¥²¿¡££ÚÐòÊÇ´°¿Ú°´²ã´Î¼¶±ðÏÔʾµÄ˳Ðò£»
                            hWnd£ßTOP£¨MOST£©£º°Ñ´°¿Ú·ÅÔÚÁбíµÄ¶¥²¿£¬Î»ÓÚËùÓÐ×î¶¥´°¿ÚÖ®ºó¡£
X Integer¡ª´°¿ÚеÄX×ø±ê£¬Èç¹ûhWndÊÇÒ»¸ö×Ó´°¿Ú£¬X¸ø³öµÄÊǸ¸´°¿ÚµÄ¿Í»§×ø±ê¡£
Y Integer¡ª´°¿ÚеÄY×ø±ê£¬Èç¹ûhWndÊÇÒ»¸ö×Ó´°¿Ú£¬Y¸ø³öµÄÊǸ¸´°¿ÚµÄ¿Í»§×ø±ê¡£
cx Integer¡ªÖ¸¶¨Ð´°¿Ú¿í¶È¡£
cy Integer¡ªÖ¸¶¨Ð´°¿Ú¸ß¶È¡£
wFlags Integer¡ª°üº¬ÏÂÁбêÖ¾Ö®Ò»µÄÕûÊý£º
            SWP£ßDRAWFRAME£ºÎ§ÈÆ´°¿Ú»­Ò»¸ö±ß¿ò£»
                            SWP£ßHIDEWINDOW£ºÒþ²Ø¸Ã´°¿Ú£»
                            SWP£ßNOACTIVATE£º²»¼¤»î¸Ã´°¿Ú£»
                            SWP£ßNOMOVE£º±£³Öµ±Ç°Î»Ö㨣غͣٱ»ºöÂÔ£©£»
                            SWP£ßNOREDRAW£º´°¿Ú²»×Ô¶¯ÖØ»­£»
                            SWP£ßNOSIZE£º±£³Öµ±Ç°´óС£¨cxºÍcy±»ºöÂÔ£©£»
                            SWP£ßNOZORDER£º±£³Ö´°¿ÚÁбíÖеĵ±Ç°Î»Öã¨hWndInsertAfter±»ºöÂÔ£©£»
                            SWP£ßSHOWWINDOW£ºÏÔʾ¸Ã´°¿Ú¡£
    ×¢ÊÍ£ºµ±Ò»¸ö´°¿Ú³ÉΪ×î¶¥´°¿Úʱ£¬ËüËùÓеĴÓÊô´°¿ÚÒ²³ÉΪ×î¶¥´°¿Ú£»µ±Ëü³ÉΪ·Ç×î¶¥´°¿Úʱ£¬ËüÈ«²¿µÄ´ÓÊô´°¿ÚºÍÓµÓд°¿ÚÒ²³ÉΪ·Ç×î¶¥´°¿Ú£¬£ÚÐò±íʾ´°¿ÚÑØ×Å´ÓÆÁÄ»ÀïÏòÍâÑÓÉìµÄ¼ÙÏë£ÚÖᣬ´Ó¶¥µ½µ×µÄÅÅÁдÎÐò¡£
VBʵÏÖ´°¿ÚÓµÓС°Always On Top¡±ÌØÐÔ£º
Ê×ÏÈ£¬¶¨ÒåÈ«¾Ö³£Á¿¼°º¯Êý¡£
Global Const hWnd£ßTOPMOST£½£­£±
Global Const SWP£ßNOACTIVATE£½£¦£È£±£°
Global Const SWP£ßSHOWWINDOW£½£¦£È£´£°
Declare Sub SetWindowPosLib ¡°User¡± ByBal hWnd as Integer£¬hWndInsertAfter as Integer£¬ByVal £Ø as Integer£¬ByVal £Ù as Integer£¬ByVal cx as Integer£¬ByVal cy as Integer£¬ByVAL wFlags as Integer£©
Ö÷³ÌÐòÈçϱàд£º
Sub Main £°
Screen£®MousePointer£½£±£±'ʹÊó±ê±äΪ©¶·×´
Load SystemCover'×°ÔØÏµÍ³·âÃæ´°Ìå
SetWindow£Ð£ï£ó SystemCover£®hWnd£¬hWnd£ßTOPMOST£¬£°£¬£°£¬£°£¬£°£¬SWP£ßNOACTIVATE Or SWP£ßSHOWWINDOW'ʹµÃ·âÃæ×Ü´¦ÓÚ×îÇ°Ãæ
Load InitWindow£±'×°ÔØ³õʼ»¯´°Ì壱
Load InitWindow£²'×°ÔØ³õʼ»¯´°Ì売
£º
£º
Unload SystemCover'¹Ø±Õϵͳ·âÃæ´°Ìå
Screen£®MousePointer£½£°
'ʹÊó±ê±äΪȱʡÐÎ×´
End Sub
Èô°¿ÚÒ»Ö±ÔÚÉÏÃæ
    ºÜ¶àÁ÷ÐÐÈí¼þ¶¼ÓÐÕâÑùÒ»¸öÑ¡ÏAlways on Top¡£Ëü¿ÉÒÔÈô°¿ÚÔÚ×îÉÏÃæ£¬±ðµÄ´°¿Ú²»Äܸ²¸ÇËü¡£ÎÒÃÇÔÚ VB ÖУ¬¿ÉÒÔʹÓÃÏÂÃæµÄ·½·¨À´ÊµÏÖ£º
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOZORDER = &H4
Private Const SWP_NOREDRAW = &H8
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_SHOWWINDOW = &H40
Private Const SWP_NOCOPYBITS = &H80
Private Const SWP_NOOWNERZORDER = &H200
Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Private Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
Private Const HWND_TOP = 0
Private Const HWND_BOTTOM = 1
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
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 mbOnTop As Boolean
Private Property Let OnTop (Setting As Boolean)
if Setting Then
SetWindowPos hwnd, -1, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
Else
SetWindowPos hwnd, -2, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End If
mbOnTop = Setting
End Property
¡¡
Private Property Get OnTop() As Boolean
'Return the private variable set in Property Let
OnTop = mbOnTop
End Property
    µ÷Óà OnTop=True ¼´¿ÉÈô°¿Ú Always On Top¡£
´´½¨ÎÞ Icon µÄ´°¿Ú
    ÎÒÃÇÔںܶàʱºò¶¼ÐèÒªÄÇÖÖÎÞ Icon µÄ ´°¿Ú£¬Èç¡°¹ØÓÚ¡­¡­¡±¡°²éÕÒ¡±µÈ¡£ÔÚ VB ÖУ¬ÎÒÃÇ¿ÉÒÔ°´ÒÔϲ½ÖèÀ´´´½¨´ËÀà´°¿Ú£º
    1¡¢ÉèÖô°¿ÚµÄ BorderStyle = 3£»
    2¡¢ÔÚ Form_Load ÖмÓÈ룺Me.Icon = LoadPicture("")
´´½¨²»¹æÔò´°¿Ú
    Win32 API ÓкܶàÈÃÄãÒâÏë²»µ½µÄ¹¦ÄÜ¡£Òª´´½¨ÌØÊâµÄ²»¹æÔò´°¿Ú¿´ÉÏÈ¥ËÆºõºÜÄÑ¡£µ«ÎÒÃÇÈç¹ûÎÒÃÇ˵ÎÒÃÇÓü¸ÐдúÂë¾Í¿ÉÒÔʵÏÖ£¬ÕâËÆºõ²»¿É˼Òé¡£µ«ÊÂʵ¾ÍÊÇÈç´Ë£¡ÇëÊÔÊÔ£º
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
¡¡
Private Sub Form_Load()
Show 'The form!
SetWindowRgn hWnd, CreateEllipticRgn(0, 0, 300, 200), True
End Sub
    ÉÏÊö´úÂë¿ÉÒÔ´´½¨Ò»¸öÍÖÔ²ÐÎ×´µÄ´°¿Ú¡£ÔõôÑù£¿£¿
ÓÃVB5.0»ñÈ¡ÕýÔÚϵͳÖÐÔËÐеĴ°¿Ú±êÌâ
ɽ¶«µÂÖÝ ñãÖÇÇ¿
    ÊìϤVisual BasicµÄ¶ÁÕß¶¼ÖªµÀ£¬AppActivateÓï¾äÊǼ¤»îÒ»¸öÓ¦ÓóÌÐò´°¿ÚÆäºóËù´øµÄ²ÎÊýÊÇÖ¸Òª±»×Ó¼¤»îµÄÓ¦ÓóÌÐò´°¿Ú±êÌâÌõµÄ×Ö·û´®¡£Èç¹ûÒª¼¤»îµÄÊÇÒ»¸ö³£¼ûµÄÓ¦ÓóÌÐò£¬ÎÒÃÇÔÚ±àд³ÌÐòʱ¾Í¿ÉÒÔÖ±½ÓдÉϴ˳ÌÐòµÄ´°¿Ú±êÌâ¡£ÀýÈ磬ÎÒÃÇÏ뼤»îWindows95µÄ¼ÆËãÆ÷£¬¿ÉÏÈÔËÐгÌÐòx=SHELL("Calc.exe",1)£¬È»ºóÔÙ¼¤»î¼ÆËãÆ÷´°¿ÚAppActivate¡°¼ÆËãÆ÷¡±£¬Ôò³ÌÐò½¹µã×Ô¶¯×ªµ½¼ÆËãÆ÷´°¿ÚÉÏ¡£È»¶øµ¥´¿Ê¹Óø÷½·¨¾ÖÏÞÐԷdz£´ó£¬±ÈÈçÉÏÊöÀý×Ó£¬Èç¹ûÎÒÃÇ·ÅÔÚÓ¢ÎÄWindows95ÉÏÔËÐУ¬¼ÆËãÆ÷µÄ´°¿Ú±êÌâ¾Í²»ÊÇ¡°¼ÆËãÆ÷¡±£¬¶øÊÇ¡°Calculator¡±¡£ÔÙÒ»¸ö¾ÖÏÞÐÔ¾ÍÊÇÔںܶàÇé¿öÏÂÎÒÃDz¢²»ÖªµÀÒª¼¤»îµÄ³ÌÐò´°¿Ú±êÌâÃû³Æ£¬ÈçºÎ±àÖÆÒ»¸öÄÜ×Ô¶¯²éÕÒ³ÌÐò´°¿Ú±êÌâÃû³ÆµÄ³ÌÐòÊDZ¾ÎÄÒª½â¾öµÄÎÊÌâ¡£
    ÎÒÃÇ¿ÉÒÔ²ÉÈ¡Èçϰ취£¬À´»ñÈ¡ÕýÔÚϵͳÔËÐеĴ°¿Ú±êÌâ¡£
    ÔÚWindowsAPIÖÐÓÐÒ»¸öº¯Êý£º
        Get Windows (ByVal hWnd As Long ,ByVal wCmd As Long) As Long
    ÆäÖУ¬hWndÊǵ±Ç°´°¿Ú¾ä±ú£¬wCmdÊÇÓëhWndÓÐÁªÏµµÄ³£Á¿£¬Æäº¬ÒåÈçÏ£º
wCmdÖµ
 º¬Òå
GW-GHILD
 µÚÒ»¸ö×Ó´°¿Ú
GW-HWNDFIRST
 ×Ó´°¿ÚµÄµÚÒ»Ðֵܴ°¿Ú£¬ÆäµÚÒ»¸ö¶¥²ã´°¿Ú
GW-HWNDLAST
 ×Ó´°¿ÚµÄ×îºóÒ»¸öÐֵܴ°¿Ú£¬»ò×îºóÒ»¸ö¶¥²ã´°¿Ú
GW-HWNDNEXT
 ºó¼Ì´°¿Ú
GW-HWNDPRCV
 ÏÈǰ´°¿Ú
GW-OWNER
 ´°¿ÚÓµÓÐÕß
    ´Ëº¯Êý·µ»ØÖµÊÇwCmdËùÖ¸µÄ´°¿ÚµÄ¾ä±ú¡£
    ÎÒÃÇÀûÓô˾ä±ú £¬ÔÙÓú¯ÊýGet WindowsText (ByVal hWnd As Long ,ByVal Ipstring As String, ByVal cch As Long) As Long£¬½«¾ä±úhWndÖ¸¶¨µÄ´°¿Ú±êÌâ·ÅÈëÒ»¸ö×Ö·û´®±äÁ¿IpstringÖУ¬cchÊÇÖ¸·ÅÈëIpstringÖеÄ×î´ó×Ö·ûÊý¡£´Ëº¯Êý³É¹¦Ê±·µ»Ø×Ö·û´®³¤¶È£¬Èç¹û´°¿ÚÎÞ±êÌâÔò·µ»ØÁã¡£
    ÔÚʹÓÃGet WindowsTextº¯Êýǰ£¬»¹ÒªÏÈÓú¯ÊýGet WindowsTextLength £¨ByVal hWnd As Long £©As LongµÃµ½hWndÖ¸¶¨´°¿Ú±êÌâµÄ³¤¶È£¬·ÅÈëcchÖС£
    ×Ô±àÒ»¸ö¹ý³ÌFindTitle()²éÕÒϵͳÖÐÕýÔÚÔËÐеÄËùÓбêÌ⣬Ê×ÏÈ»ñµÃµÚÒ»¸ö¶¥²ã´°¿Ú¾ä±úcurrwnd£¬¶øºó²ÉÓÃWhile¡­WendÑ­»·½á¹¹£¬µ±currwnd²»ÎªÁã¶øÇÒ±êÌâÎı¾³¤¶È²»ÎªÁãʱ£¬½«»ñµÃµÄ±êÌâ´æÈëÁбí¿òCombo1£¬ÔÙÕÒºó¼Ì´°¿ÚµÄ¾ä±ú£¬µ±¾ä±úcurrwnd=0ʱ±íʾÒÑûÓÐÁ˺ó¼Ì´°¿Ú£¬Í˳öÑ­»·¡£ÕâÑù¾Í½«ÏµÍ³ÖÐËùÓеĴ°¿Ú¾ä±ú¼°±êÌâÕÒ³öÀ´ÁË¡£
    È»¶øµ÷ÊÔÖз¢ÏÖÓô˷½·¨ÕÒµ½µÄ´°¿Ú±êÌâ·Ç³£¶à£¬Õâ˵Ã÷WindowsϵͳÔËÐÐʱÓÐÐí¶àÒþº¬µÄ´°¿Ú£¬¶øÕâЩ´°¿ÚÊÇÎÒÃÇËù²»ÐèÒªµÄ£¬¶øÇÒÓÃAppActivate¼¤»îʱҲ³öÏÖ´íÎó¡£
    Òò´ËÎÒÃÇÔÙ×Ô±àÒ»¸ö¹ý³ÌSift ()²éÕҿɼ¤»îµÄ´°¿Ú¡£Æä·½·¨ÊÇÓÃAppActivateÖð¸ö¼¤»îËùÓд°¿Ú£¬³öÏÖ´íÎóµÄ¶ªµô£¬±£Áô¿É¼¤»îµÄ´°¿Ú±êÌ⣬·ÅÈëÁбí¿òCombo2¡£
    Ê×ÏÈн¨´°ÌåForm1£¬Caption=¡°»ñÈ¡´°¿Ú±êÌ⡱£¬ÔÚ´°ÌåForm1ÉϽ¨Á¢Á½¸ö±êÇ©£¬Label1,Caption=¡°ËùÓд°¿Ú±êÌ⡱£¬Label2.Caption=¡°¿É¼¤»îµÄ´°¿Ú±êÌ⡱£»½¨Á¢Á½¸öÏÂÀ­Áбí¿ò£¬Combo1´æ·ÅϵͳÖеÄËùÓбêÌâÃû³Æ£¬Combo2´æ·Å¿É¼¤»îµÄ±êÌâÃû³Æ£»ÔÙ½¨Á¢Á½¸öÃüÁî°´Å¥£¬Command1.Caption=¡°¼¤»î´°Ì塱£¬¿É¶ÔËùÁд°Ìå½øÐвâÊÔ£¬ÃüÁî°´Å¥Command2.Caption=¡°Ë¢Ð¡±£¬µã»÷Ëü¿ÉÖØÐ²éÕÒËùÓÐÔÚϵͳÖеĴ°ÌåÃû³Æ£¬µ±±¾³ÌÐòÔËÐÐÒÔºóÓÖÔËÐÐÁËгÌÐòʱʹÓô˰´Å¥¡£
    ´ÓVBϵͳ²Ëµ¥ÉÏѡȡProjectÖеÄAdd Module£¬½«ÏÂÊöAPIº¯Êý¼°Ò»Ð©³£Á¿Â¼Èë¡£
'Module Ä£¿é
Declare Function GetWindow Lib "user32"(ByVal hwnd As Long, ByVal wCmd As Long)As Long
Declare Function GetWindowText Lib "user32" Aias"GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String,ByVal cch As Long)As Long
Declare Function GetWindowText Length Lib "user32" Aias"GetWindowTextLengthA" (ByVal hwnd As Long)As Long
Public Const GW-HWNDFIRST=0
Public Const GW-HWNDLAST=1
Public Const GW-HWNDNEXT=2
Public Const GW-HWNDPREV=3
Public Const GW-OWNER=4
    ½¨Á¢Á½¸ö×Ó³ÌÐò£º
Sub FindTitle ()
'²éÕÒ×ÀÃæÉϵÄËùÓд°¿Ú±êÌâ
Dim currwnd As Integer
Combo1.Clear
Currwnd=GetWindow (hwnd, GW-HWNDFIRST)
While currwnd<>0
Length= GetWindow TextLength (currwnd)
listitem$=Space $(length +1)
length= GetWindow Text (currwnd,listitem$,length+1)
if length>0 Then
Combo1.Addltem listitem $
End if
currwnd= GetWindow (currwnd, GW-HWNDNEXT)
if Combl1.ListCount>0 Then
Combo1.Text=Combol.List (0)
Combo1.Listindex =0
Else
MsgBox¡°Ã»Óз¢ÏֿɻµÄ´°¿Ú¡±£¬16£¬¡°»î¶¯¡±
End if
Wend
End Sub
Sub Sift ()
'²âÊÔ´°¿ÚÄÜ·ñ»î¶¯
i=0
Combo2.Clear
Do
On Local Error Resume Next
AppActivate Combo1.List (i)
If Err =0 Then
Combo2.Additem Combo1.List(i)
End if
i=i+1
Loop Unti 1 i=Combo1.ListCount-1
AppActivate Form1.Caption
If Combo2.ListCount>0 then
Combo2.Text =Combo2.List (0)
Combo2.Listindex =0
Else
MsgBox ¡°Ã»Óз¢Ïֿɻ´°¿Ú¡±£¬16£¬¡°»î¶¯¡±
End if
End Sub
Private Sub Form-Load ()
Form1.Show'Ê×ÏȽ«±¾´°ÌåÏÔʾ³öÀ´£¬·ñÔò²éÕÒ³öµÄ´°Ìå±êÌâûÓб¾Éí
MsgBox "¿ªÊ¼²éÕÒ´°¿Ú±êÌâ"
Call FindTitle
Call Sift
End Sub
Private Sub Command1-Click ()
F $=Combo2.Text
On Local Error Resume Next
AppActivate F $
End Sub
Private Sub Command2-Click ()
Call FindTitle
Call Sift
End Sub
    ±¾³ÌÐòÔÚVisual Basic5.0Éϵ÷ÊÔͨ¹ý¡£
ÀûÓÃForm_QueryUnloadѯÎÊʹÓÃÕßÊÇ·ñ¹Ø±Õ´°¿Ú
Èç ºÎ ÔÚ ´° ¿Ú ¹Ø ±Õ ʱ £¬ ѯ ÎÊ Ê¹ Óà Õß ÊÇ ·ñ È· ¶¨ ¹Ø ±Õ £¬ Èô ·ñ£¬ Ôò È¡ Ïû ¹Ø ±Õ ¶¯ ×÷ £¬ Èô ÊÇ Ôò ½á Êø ³Ì Ðò £¡
Õâ ÊÇ Ò» ¸ö ºÜ ÖØ Òª µÄ ÎÊ Ìâ £¬ Ïë Ïë £¬ Èç ¹û »¹ ÓÐ ±à ¼­ ÖÐ µÄ µµ°¸ ÉРδ ´æ µµ £¬ µ« Ò» ʱ Íü ÁË °´ Ï ¡¸ ¹Ø »ú ¡¹ Å¥ £¬ ÄÇ Ã´ ±à ¼­ ÖÐµÄ ÎÄ ¼þ ÄÑ µÀ ¾Í ²» ´æ µµ ÁË Â𠣿 Ϊ ÁË ±Ü Ãâ Õâ ÖÖ Ê Çé µÄ ·¢ Éú £¬ Windows ÔÚ ¹Ø »ú ÒÔ Ç° »á áç ѯ ÿ Ò» ¸ö ´° ¿Ú ÊÇ ·ñ ͬ Òâ ¹Ø »ú £¬ ¶ø¶Ô VB ³Ì Ðò ¶ø ÑÔ £¬ Ëù ÊÕ µ½ ¡¸ áç ѯ ͬ Òâ ¹Ø »ú ¡¹ µÄ Ê ¼þ ÊÇ Form_QueryUnload£¬Èç ¹û ³Ì Ðò ²» ͬ Òâ ¹Ø »ú £¬ ¿É ÒÔ ½« Èþ Êý ÖÐ µÄ Cancel Éè ¶¨ Ϊ True£¬Èç Ï £º
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        Cancel = True
    End Sub
Ôò Windows ±ã »á ÖÕ Ö¹ ¹Ø »ú µÄ ¶¯ ×÷ ¡£ Ö» ÓÐ ÔÚ Ëù ÓÐ ´° ¿Ú ¶¼ ͬÒâ ¹Ø »ú µÄ Çé ¿ö Ï £¬ Windows ²Å »á Õæ µÄ ¹Ø »ú ¡£
Èç ºÎ½«¡¸¾Ü ¾ø ±» ¸Ç ס µÄ ´° ¿Ú ¡¹»¹ Ô­
Èç ¹û Form ÒÑ Ö´ ÐÐ ¹ý ¾Ü ¾ø ±» ¸Ç ס µÄ ´° ¿Ú ¹¦ ÄÜ, Ó¦ Èç ºÎ ½« Ëü »Ö ¸´ ³É Õý ³£ µÄ Form ?
¾Ü¾ø±»¸Çס ret = SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, 3)
»Ö¸´Õý³£ ret = SetWindowPos(Me.hwnd, -2, 0, 0, 0, 0, 3)
Ôڲ˵¥ÉÏÔö¼Óͼ±ê
    ÉùÃ÷£º
Declare Function GetMenu Lib "user32"?(ByVal hwnd As Long) As Long
Declare Function GetSubMenu Lib "user32"?(ByVal hMenu As Long, ByVal nPos As Long) As Long
Declare Function GetMenuItemID Lib "user32"?(ByVal hMenu As Long, ByVal nPos As Long) As Long
Declare Function SetMenuItemBitmaps Lib "user32"?(ByVal hMenu As Long, ByVal nPosition As Long,?ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ?ByVal hBitmapChecked As Long) As Long
Public Const MF_BITMAP = &H4&
Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
Declare Function GetMenuItemCount Lib "user32"?(ByVal hMenu As Long) As Long
Declare Function GetMenuItemInfo Lib "user32"?Alias "GetMenuItemInfoA" (ByVal hMenu As Long,?ByVal un As Long, ByVal b As Boolean,?lpMenuItemInfo As MENUITEMINFO) As Boolean
Public Const MIIM_ID = &H2
Public Const MIIM_TYPE = &H10
Public Const MFT_STRING = &H0&
    Ê¹Ó㺠ÔÚ Form1 ÖÐÔö¼ÓÒ»¸ö PictureBox1£¬ AutoSize Ϊ True£¬ ·ÅÒ»¸öС Bmp (²»ÊÇ Icon£¡ÍƼö 13*13)¡£
Private Sub Command1_Click()
¡¡
'Get the menuhandle of your app
hMenu& = GetMenu(Form1.hwnd)
¡¡
'Get the handle of the first submenu (Hello)
hSubMenu& = GetSubMenu(hMenu&, 0)
¡¡
'Get the menuId of the first entry (Bitmap)
hID& = GetMenuItemID(hSubMenu&, 0)
¡¡
'Add the bitmap
SetMenuItemBitmaps hMenu&, hID&, MF_BITMAP, Picture1.Picture, Picture1.Picture
'You can add two bitmaps to a menuentry
'One for the checked and one for the unchecked
'state.
¡¡
End Sub
²Ëµ¥ÏîµÄ¶¯Ì¬×°Èë
    ²Ëµ¥ÏîµÄ¶¯Ì¬×°ÈëÊÇÖ¸²Ëµ¥ÏîµÄ¸öÊý²»¹Ì¶¨. Àý×Ó¾ÍÊÇÎļþ²Ëµ¥ÖÐ×î½ü´ò¿ªµÄÎļþµÄÁÐ±í¡£ÔÚµÚÒ»´Î´ò¿ªÎļþ֮ǰ,¸ÃÁбíÊǿյÄ,²¢ÇÒ²»ÔÚÎļþ²Ëµ¥ÖгöÏÖ;´ò¿ªÒ»¸öÎļþºó,¸ÃÁÐ±í²»ÔÙÊǿյÄ,²¢ÇÒÎļþ²Ëµ¥ÖгöÏÖ´ú±í±»´ò¿ªÎļþµÄ²Ëµ¥Ïî¡£
    ¾ßÌåµÄʵÏÖ¹ý³ÌÈçÏÂ:
    ÔÚÎļþ²Ëµ¥ÀïÔö¼ÓÒ»¸ö²Ëµ¥Ïî,±êÌâÈÎÒâ,²¢¼ÙÉè²Ëµ¥ÏîµÄNameÊôÐÔÊÇopened_files_ list;
    ¸ü¸Ä²Ëµ¥Ïîopened_files_listµÄ¿É¼ûÊôÐÔ,ʹ opened_files_list.Visible=False
    ¸ü¸Ä²Ëµ¥Ïîopened_files_listµÄϱêÊôÐÔ,ʹ opened_files_list.Index=0
    ÔÚ³ÌÐòÖпØÖƲ˵¥Ïîopened_files_listµÄ¶¯Ì¬×°Èë¡£
    ¼ÙÉèÒªÏÔʾ´ò¿ª¹ýµÄµÚ¶þ¸öÎļþµÄÎļþÃû,²¢ÇÒ¸ÃÎļþÃû´æ·ÅÔÚÒ»¸öÎļþÃûÊý×éopened _file_nameÀï¡£ÒÔϵĴúÂë¾ÍʵÏÖÁËÕâÒ»¹¦ÄÜ:
¡¡
Load opened_files_list(1)
opened_files_list(1).Caption="&2"+opened_file_name(1)
opened_files_list(1).Visible=True
¡¡
    ÐèҪעÒâµÄÊÇ,¶ÔÓÚϱêΪ0µÄ²Ëµ¥Ïî,²»ÄÜÓÃLoad·½·¨¡£ÒòΪÔÚ³ÌÐòÖ´ÐÐʱ,¸Ã²Ëµ¥Ïî¾Í ÒѾ­±»×°Èëµ½ÄÚ´æÀïÁË;ÁíÍâ,Ôڲ˵¥ÏîµÄ±êÌâÊôÐÔ×Ö·ûÀïµÄ"&"×Ö·û¾ßÓÐÌØÊâµÄº¬Òå,ËüµÄ×÷ ÓÃÊÇÔÚÏÔʾ¸ÃÊôÐÔ×Ö·û´®µÄͬʱ,²¢²»ÏÔʾ"&"±¾Éí,¶ø½ô¸ú"&"µÄ×Ö·ûÔÚÏÔʾʱ¾ßÓÐÏ»®Ïß, ²¢ÇÒ¸Ã×Ö·û³ÉΪÈȼü¡£
    Èç¹ûϱ겻Ϊ0µÄ²Ëµ¥Ïî²»ÔÙÐèÒª,ΪÁ˼õÉÙ¶ÔÄÚ´æ×ÊÔ´µÄÕ¼ÓÃ,¿ÉÒÔÓÃUnload·½·¨°ÑËü ´ÓÄÚ´æÐ¶³ö;ͬÑùµØ,²»ÄÜÓÃUnloadж³öϱêΪ0µÄ²Ëµ¥Ïî¡£
ÓÃVBʵÏÖ¸¡¶¯°´Å¥
    ÔÚ΢ÈíµÄºÜ¶àÈí¼þ£¨ÈçWORD£©µÄ¹¤¾ßÀ¸ÖУ¬¶¼²ÉÓÃÒ»ÖÖ¸¡¶¯°´Å¥£¬¼´Õý³£Çé¿öϰ´Å¥µÄͼ±ê³Ê»ÒÉ«£¬µ±Êó±êÒÆ¶¯µ½Ä³Ò»°´Å¥Ê±£¬¸Ã°´Å¥×Ô¶¯ÏòÉÏ͹ÆðÇÒ±äΪ²ÊÉ«£¬²¢ÔÚ°´Å¥µÄÓÒÏ·½ÓÐÒ»±êÇ©Ìáʾ¸Ã°´Å¥µÄ¹¦ÄÜ£¬Êó±êÒÆ¿ªºóÓÖ×Ô¶¯»¹Ô­£¬ÕâÖÖ°´Å¥ÓÃVBʵÏÖʱ£¬·½·¨ÈçÏ£º
    1.ÏÈÓûæÍ¼¹¤¾ß×÷³ö°´Å¥Í¼±êºó´æÅÌ£¨Èç1.bmp£©£¬ÔÙÓÃͼÏó´¦ÀíÈí¼þ½«¸Ãͼ±êת»»Îª»Ò ¶Èͼ»ò¸¡µñͼºóÔÙ´æÅÌ£¨Èç2.bmp£©¡£
    2.ÔËÐÐVB£¬½¨Á¢Ò»Ð´°Ì壨Èçform1£©¡£
    3.ÔÚ´°ÌåÉÏÐèÒª½¨Á¢°´Å¥µÄλÖô¦½¨Á¢Ò»Í¼Æ¬¿ò£¨Èçimage1£©£¬Æä´óСºÍͼ±êÏàͬ£¬²¢½« ÆäpictureÊôÐÔÉèΪ2.bmp¡£
    4.ÔÚimage1ÖÜΧ½¨Á¢ÓÉËĸö³¤¶ÈÏàͬµÄline¿Ø¼þ£¨Èçline1¡«4£©×é³ÉµÄ·½¿ò£¬·½¿òÒª±Èimage1 ¿Ø¼þÉԴ󣬷ñÔò´ï²»µ½Ô¤¼ÆÐ§¹û£¬½«ÉÏÃæºÍ×ó±ßµÄÑÕÉ«Éè³É°×É«£¬ÏÂÃæºÍÓұߵÄÉè³ÉºÚÉ«£¬ ²¢½«Ëĸöline¿Ø¼þµÄvisibleÊôÐÔ¶¼Éè³Éfalse ¡£
    5.ÔÚ³ÌÐòÖмÓÈëÒÔÏÂÄÚÈݼ´¿É£º
        Private Sub Image1_MouseMove(Botton As Integer,Shift As Integer,X As Single,Y As Single)
        Image1.Picture=LoadPicture("c:\1.bmp")
        Line1.Visible=True
        Line2.Visible=True
        Line3.Visible=True
        Line4.Visible=True
        End Sub
        Private Sub Form1_MouseMove(Botton As Integer,Shift As Integer,X As Single,Y As Single)
        Image1.Picture=LoadPicture("c:\2.bmp")
        Line1.Visible=False
        Line2.Visible=False
        Line3.Visible=False
        Line3.Visible=False
        End Sub
ÈçºÎÉè¼ÆÒ»¸ö¿ÉÖжÏÑ­»·µÄ°´Å¥¡£
µ± ³Ì Ðò ½ø Èë Ñ­ »· ¶ø ÉРδ ÍÑ Àë ʱ £¬ ʹ Óà Õß ½« ÎÞ ·¨ ²Ù ×÷ ±íµ¥ ÉÏ µÄ ¿Ø ÖÆ ¿Ø ¼þ £¬ Ëù ÒÔ °´ Å¥ Ò² ÊÇ ÎÞ ·¨ ²Ù ×÷ µÄ ¡£ Ïë Òª Éè¼Æ ¿É ÖÐ ¶Ï Ñ­ »· µÄ °´ Å¥ £¬ Ê× ÏÈ ±Ø Ðë ÔÚ Ñ­ »· Ö® ÖÐ °² ²å DoEvents Ðð Êö £¬ Àý Èç £º
    While ...
Ñ­ »· ÄÚ µÄ ´¦ Àí ¹¤ ×÷
    DoEvents
    Wend
DoEvents µÄ ×÷ Óà ÊÇ ÔÝ Ê± ÊÍ ·Å CPU£¬ Èà Æä Ëû ³Ì Ðò µÃ ÒÔ ±» Ö´ ÐУ¬ Ò² ¾Í ÊÇ Èà ʹ Óà Õß ¿É ÒÔ ²Ù ×÷ ±í µ¥ ÉÏ µÄ ¿Ø ÖÆ ¿Ø ¼þ ¡£
½Ó ×Å Éù Ã÷ Ò» ¸ö È« Óò ±ä Êý £º Dim bExit As Boolean£¬ È» ºó ÔÚ »ØÈ¦ ÖÐ Ôö ¼Ó ÒÔ Ï µÄ ÅÐ ¶Ï ʽ £º
    While Not bExit
    Ñ­ »· ÄÚ µÄ ´¦ Àí ¹¤ ×÷
    DoEvents
    Wend
    bExit = False
×î ºó Ôò ÊÇ ÔÚ °´ Å¥ µÄ Click Ê ¼þ ³Ì Ðò ÖР׫ д ÒÔ Ï Ðð Êö £º
    bExit = True
ÒÔ ÉÏ ³Ì Ðò ÓÐ Á½ ´ó ÖØ µã
(1) DoEvents Èà ʹ Óà Õß ¿É ÒÔ °´ Ï ÃüÁî Å¥
(2) °´ Å¥ °´ Ï ʱ £¬ ½« È« Óò ±ä Êý bExit Éè ¶¨ ³É True£¬ ʹ µÃ ³Ì Ðò ÔÚ ÅÐ ¶Ï Not bExit Ϊ False µÄ Çé ¿öÏ ¶ø ÍÑ Àë Ñ­ »· ¡£
APIº¯ÊýÔÚVB¿ª·¢ÖеÄÓ¦ÓÃ
ÍòÊ÷ѧ Ö£ÆôË«
    VB×÷Ϊ¿ìËÙ¿ª·¢Windowsϵıà³Ì¹¤¾ß£¬ÒѾ­ÎªÔ½À´Ô½¶àµÄ¿ª·¢Õß²ÉÓᣵ«Èç¹ûÒª¿ª·¢³öרҵµÄWindowsÈí¼þ£¬»¹Ðè²ÉÓôóÁ¿µÄAPIº¯Êý£¬ÒÔϽáºÏ±ÊÕß¿ª·¢¹ÜÀíÈí¼þµÄ¾­Ñé̸¼¸µãÌå»á¡£
    ³ÌÐòÖÐÅж¨WindowsµÄ°æ±¾
    ÖÚËùÖÜÖª£¬Windows3.x¸÷°æ±¾»ò¶à»òÉÙ»áÓÐЩ²î±ð£¬ÎªÁËʹ¿ª·¢³ÌÐò±ÜÃâ³öÏÖĪÃûÆäÃîµÄ´íÎó£¬×îºÃÔÚ³ÌÐòÔËÐÐǰ×Ô¶¯Åж¨WindowsµÄ°æ±¾¡£²ÉÓÃAPIÌṩµÄº¯ÊýgetversionºÜÈÝÒ×ʵÏÖÕâÒ»µã¡£º¯ÊýÉùÃ÷ÈçÏ£º
Declare Function GetVersion Lib"Kernel"() As Integer
    ´Ëº¯ÊýûÓвÎÊý£¬·µ»ØÖµÎªWindowsµÄ°æ±¾ºÅ£¬ÆäÖа汾ºÅµÄµÍλ×Ö½ÚΪWindowsµÄÖ÷°æ±¾ºÅ£¬°æ±¾ºÅµÄ¸ßλ×Ö½Ú·µ»ØWindowsµÄ´Î°æ±¾ºÅ¡£Åбð¹ý³ÌÈçÏ£º
Private Sub Form_Load ()
Dim ver As Integer
Dim major As Integer
Dim minor As Integer
Ver = GetVersion ()
major = ver And £¦HFF
minor = (ver And £¦HFF00) \ 256
If major <> 3 And minor <> 10 Then
MsgBox "°æ±¾²»ÕýÈ·!"
Exit Sub
End If
End Sub
    ³ÌÐòÖÐÅжÏWindowsµÄ°²×°Ä¿Â¼
    Ò»°ãVB¿ª·¢³öÀ´µÄ³ÌÐò°üº¬vbrun300.dllµÈ¸¨ÖúÎļþºÍ.vbxÎļþ£¬ËüÃǾùÐè°²×°µ½WindowsĿ¼(c:\windows)»òWindowsµÄϵͳĿ¼(c:\windows\system)Ï£¬µ«ÒòΪÓû§°²×°Windowsʱ¿ÉÄÜ»á¸Ä±äWindowsµÄĿ¼Ãû(Èçc:\windows)£¬Ê¹Óð²×°Èí¼þºó£¬²»ÄÜÕýÈ·ÔËÐÐ.APIÖÐÌṩµÄGetwinDowsdirectory»òGetSystemDirectory½ÏºÃµØ½â¾öÁËÕâ¸öÎÊÌâ¡£º¯ÊýÉùÃ÷ÈçÏ£º
¡¡
Declare Function GetSystemDirectory Lib "Kernel"(ByVal lpBuffer As
String,ByVal nSize As Integer) As Integer
¡¡
    ÆäÖвÎÊýlpbufferΪ×Ö´®±äÁ¿£¬½«·µ»ØÊµ¼ÊWindowsĿ¼»òWindowsµÄϵͳĿ¼£¬nsizeΪlpbufferµÄ×Ö´®±äÁ¿µÄ´óС£¬º¯Êý·µ»ØÖµ¾ùΪʵ¼ÊĿ¼µÄ³¤¶È¡£¼ì²éº¯ÊýÈçÏ£º
¡¡
Function checkdir() As Boolean
Dim windir As String £ª 200
Dim winsys As String £ª 200
Dim winl As Integer
Dim wins As Integer
Dim s1 As String
Dim s2 As String
winl = GetWindowsDirectory(windir,200)
winl = GetSystemDirectory(winsys,200)
s1 = Mid ¡ç(windir,1,winl)
s2 = Mid ¡ç(winsys,1,wins)
If Wins = 0 Or wins = 0 Then
checkdir = False
Exit Function
End If
If s1 <> "C:\WINDOWS" Or s2 <> "C:\WINDOWS\SYSTEM" Then
checkdir = False
Exit Function
End If
checkdir = True
End Function
¡¡
shell ³öÏÖµÄÎÊÌâ
    Í¨³£±à³ÌʱҪµ÷ÓÃÍⲿ³ÌÐò£¬VBÌṩÁËshell()º¯Êý£¬µ«ÊÇÈç¹ûshellµ÷ÓõÄÍⲿ³ÌÐòÕÒ²»µ½£¬ÔòÔËÐеijÌÐòʧȥ¿ØÖÆ£¬VB¸ø³öÌáʾ"filenotfound"£¬¸Ä±äÕâÖÖÏÖÏó£¬ÒªÔÚ³ÌÐòÖмÓÈëonerrorgoto£¬±È½ÏÂé·³£¬APIº¯ÊýÖеÄwinexecºÜºÃµØ½â¾öÁËÕâ¸öÎÊÌâ¡£º¯ÊýÉùÃ÷ÈçÏ£º
¡¡
Declare Function WinExec Lib "Kernel"(ByVal lpCmdLine As String,
ByVal nCmdShow As Integer) As Integer
¡¡
    ÆäÖÐlpCmdlineΪµ÷ÓõÄÍⲿÎļþÃû£¬NcmdShowΪÍⲿ³ÌÐòµÄÔËÐÐ״̬£¬ÈçÒþ²Ø´°¿Ú¡¢×îС»¯´°¿ÚµÈµÈ¡£Èç·µ»ØÖµ´óÓÚ32±íʾִÐй¦ÄÜ£¬·ñÔò·µ»Ø´íÎóÂë¡£Àý³ÌÈçÏ£º
¡¡
sub command1_click
ds i as integer
i=winexec("notepad.exe","c:\wst.txt",9)
'²ÎÊý9 ¼´SW_RESTORE,Ò²¾ÍÊǼ¤»î²¢ÏÔʾ´°¿Ú
if i>32 then
msgbox "µ÷ÓÃÕýÈ·!!"
else
msgbox "µ÷ÓôíÎó!!"
end if
end sub
¡¡
    Í¨¹ýʵ¼ù·¢ÏÖ£¬ÔÚʹÓÃVB¿ª·¢Ó¦ÓóÌÐòʱ£¬Áé»îʹÓÃAPIº¯Êý£¬»á¸ü´óµØ·¢»ÓVBµÄ×÷Óã¬Ê¹¿ª·¢³öµÄÈí¼þ¸üרҵ£¬¹¦ÄܸüÇ¿´ó¡£
VBÖзÃÎÊAPIº¯ÊýÖ®·À´í¼¼ÇÉ
¹ùÉÙÔ½
    ¹¦ÄÜÇ¿´óµÄAPI£¨Ó¦ÓóÌÐò½Ó¿Ú£©º¯Êý¶ÔÓÚVB³ÌÐòÔ±À´Ëµ£¬²»À¢ÊǺܺõıà³Ì¹¤¾ß£¬È»¶øÊ¹ÓÃAPIº¯ÊýµÄ³ÌÐòÔ±Ò²Ðí¶¼Óöµ½ÕâÑùµÄÏÖÏó¡£ÔÚVB¼¯³É»·¾³Ï£¬³ÌÐòÔËÐк󣬳öÏÖÒ»´íÎóÐÅÏ¢¶Ô»°¿ò£¬°´È·¶¨¼üºóϵͳ×Ô¶¯Í˳öVB¼¯³É»·¾³£¬´ËʱÈç¹ûÄãµÄ³ÌÐòÉÐδ´æÅÌ£¬ÄÇÄ©ºÜÒź¶Íì»ØËðʧÒÑ»ØÌì·¦Á¦¡£×îºóÒ»´Î´æÅÌÖ®ºóµÄ³ÌÐò¶¼²»¸´´æÔÚ¡£ÕâÊÇÄã¶ÔAPIº¯ÊýʹÓò»µ±ÒýÆðµÄÒ»°ã±£»¤¹ÊÕÏ£¨GPF£©¡£
    µ±Ò»¸öGPF´í·¢Éúʱ£¬ÄãÓ¦ÔÊÐíWindows¹Ø±ÕÄãµÄÓ¦Óá£ÓÐЩÇé¿öÏÂÄã¿ÉÄÜÐèÒªÍ˳öWindows»òÕßÖØÐÂÒýµ¼ÏµÍ³¡£³ö´í³Ì¶ÈÊÓÄÄÀïÄÚ´æ±»ÆÆ»µ¶ø¶¨¡£DLL£¨¶¯Ì¬Á´½Ó¿â£©º¯ÊýÖеÄÀàÐͲ»Ò»ÖµȴíÎóÊÇGPF´íµÄÖ÷ÒªÔ­Òò¡£ÕâЩ´íÎó»áµ¼ÖÂGPFÉõÖÁʹWindowsϵͳÍêÈ«±ÀÀ££¨ÐèÒªÖØÐÂÒýµ¼Ï