Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

VBΪ×Ô¼ºµÄ³ÌÐòÉ趨ÏûÏ¢(¿É½ÓÊÕ´¦Àí)


VBΪ×Ô¼ºµÄ³ÌÐòÉ趨ÏûÏ¢(¿É½ÓÊÕ´¦Àí)
Posted by JiaJia 5 March,2009 (0)Comment
¡¡¡¡ÓÃAPIº¯Êý SetWindowLong Ö¸¶¨´¦ÀíÏûÏ¢µÄ´°¿Ú¹ý³ÌΪ×Ô¶¨ÒåµÄº¯Êý WindowProc£¬²¶»ñÏûÏ¢IDΪ WM_USER+1 µÄ×Ô¶¨ÒåÏûÏ¢»òϵͳÏûÏ¢¡£²¢ÇÒ£¬ÎªÁ˱£Ö¤´°¿ÚÄÜÕýÈ·µÄÏìÓ¦ÏûÏ¢£¬ÐèÒª±£´æÔ­À´Ä¬ÈϵĴ°¿Ú¹ý³Ì²¢ÔÚ×Ô¶¨Ò庯ÊýWindowProcÖе÷Óá£ÈçÏÂÀý£¬ÔÚ°´Å¥Ê¼þÖз¢ËÍ×Ô¶¨ÒåÏûÏ¢£¬WindowProc ²¶»ñÁË´°¿Ú´óС±ä»¯µÄϵͳ¶¨ÒåÏûÏ¢ºÍÓû§×Ô¶¨ÒåµÄÏûÏ¢²¢ÏÔʾÓû§×Ô¶¨ÒåµÄÏûÏ¢²ÎÊý wParam¡£
Form ²¿·Ö´úÂë
Private Sub Command1_Click()
Dim wParam As Long
Dim lParam As Long
Dim lResult As Long
¡¡wParam = 12345
¡¡lResult = SendMessage(Me.hwnd, WM_USER + 1, wParam, lParam)
End Sub
Private Sub Form_Load()
¡¡Me.Tag = Hook(Me.hwnd)
End Sub
Private Sub Form_Unload(Cancel As Integer)
¡¡Unhook Me.hwnd, Me.Tag
End Sub
Mod ²¿·Ö´úÂë
Option Explicit
Private Declare Function CallWindowProc Lib "user32" Alias _
"CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public 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 Const GWL_WNDPROC = -4
Public Const GWL_USERDATA = (-21)
Public Const WM_SIZE = &H5
Public Const WM_USER = &H400
Public Function Hook(ByVal hwnd As Long) As Long
¡¡Dim pOld As Long
'Ö¸¶¨×Ô¶¨ÒåµÄ´°¿Ú¹ý³Ì
¡¡pOld = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
'±£´æÔ­À´Ä¬ÈϵĴ°¿Ú¹ý³ÌÖ¸Õë
¡¡SetWindowLong hwnd, GWL_USERDATA, pOld
¡¡Hook = pOld
End Function
Public Sub Unhook(ByVal hwnd As Long, ByVal lpWndProc As Long)
¡¡Dim temp As Long
¡¡'×¢ÊÍ£ºCease subclassing.
¡¡temp = SetWindowLong(hwnd, GWL_WNDP


Ïà¹ØÎĵµ£º

ÕÐÆ¸VBÈí¼þ¹¤³Ìʦ

VBÈí¼þ¹¤³Ìʦ£º
ְλÃèÊö£º
1¡¢½øÐбàÂë¡¢²âÊÔ£»
2¡¢Ôڹ涨ʱ¼äÄÚÌá½»Ô´´úÂë¡£
¸ÚλҪÇó£º
1¡¢ÊìϤMS SQLÊý¾Ý¿â£»
2¡¢ÊìϤVB 6.0£»
3¡¢ÓÐÒµÎñϵͳ¿ª·¢¾­Ñ飻
4¡¢¾ß±¸Á¼ºÃµÄÍŶӺÏ×÷¾«Éñ£¬ÇÚ·Ü¡¢ÉϽø£»
5¡¢´óר»òÕßÒÔÉÏѧÀú£»
6¡¢¾ßÓÐ1Äê»òÕßÒÔÉÏÏà¹Ø¹¤×÷¾­Ñé £»
7¡¢ÊìϤC#ÓÅÏÈ¡£
VBÐÂÊÖ¡¢³õ¼¶³ÌÐòÔ±¹«Ë¾Ìṩרà ......

ÔÚVB Öе÷Óö¯Ì¬Á¬½Ó¿â


ÔÚVB Öе÷Óö¯Ì¬Á¬½Ó¿â
 
2001-11-08· · ··yesky
1 2 3 4 5 6 7 8  ÏÂÒ»Ò³
¡¡¡¡×÷ΪһÖÖ¼òµ¥Ò×ÓõÄWindows¿ª·¢»·¾³£¬Visual Basic´ÓÒ»ÍÆ³ö¾ÍÊܵ½Á˹ã´ó±à³ÌÈËÔ±µÄ»¶Ó­¡£Ëüʹ ³ÌÐòÔ±²»±ØÔÙÖ±½ÓÃæ¶Ô·×·±¸´ÔÓµÄWindowsÏûÏ¢£¬¶ø¿ÉÒÔ½«¾«Á¦Ö÷Òª¼¯ÖÐÔÚ³ÌÐò¹¦ÄܵÄʵÏÖÉÏ£¬´ó´óÌá¸ßÁ˱ ......

vb×Ö·û´®ÔÚÄÚ´æÖеķֲ¼£¿

¾Ý˵vb6ÖÐ,×Ö ·û´®ÒÔÒÔUNICODE·½Ê½´æ´¢£¬ËùÒÔ
Private Type UDT
lngM1 As Long
lngM2 As Long
strM3 As String * 18
strM4 As String * 8
lngM5 As Long
End Type
Private Sub Command4_Click()
Dim tmp As UDT
With tmp
.lngM1 = 1
.lngM2 = 2
' .str ......

ÈçºÎÓÃVBд°²È«¿Ø¼þ

×ÜÊö
±¾ÎÄÐðÊöÁËÈçºÎÔÚVBÖÐʵÏֿؼþµÄIobjectSafety½Ó¿Ú£¬ÒÔ±êÖ¾¸Ã¿Ø¼þÊǽű¾°²È«ºÍ³õʼ»¯°²È«µÄ¡£VB¿Ø¼þĬÈϵĴ¦Àí·½Ê½ÊÇÔÚ×¢²á±íÖÐ×¢²á×é¼þÀàÀ´±êʶÆä°²È«ÐÔ£¬µ«ÊµÏÖIobjectSafety½Ó¿ÚÊǸüºÃµÄ·½·¨¡£±¾ÑÔÓï°üÀ¨ÁËʵÏÖ¹ý³ÌÖÐËùÐèµÄËùÓдúÂë¡£
Çë×¢Ò⣬¿Ø¼þÖ»ÓÐȷȷʵʵÊǰ²È«µÄ£¬²ÅÄܱ»±êʶΪ“°²È«µÄ”¡£±¾ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ