ΪºÎÓÃvb api»ñÈ¡µÄ´°¿Ú±êÌâΪ¿Õ£¬¶øSPY++È´¿ÉÒÔ
VBÖÐcallbacke function ÈçÏ£º
Public Function EnumChildProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
Dim slength As Long, WndTitle As String ' title bar text length and buffer
Dim retval As Long ' return value
Dim WClass As String * 50
Static winnum As Integer ' counter keeps track of how many windows have been enumerated
winnum = winnum + 1 ' one more window enumerated....
slength = GetWindowTextLength(hwnd) + 1 ' get length of title bar text
WndTitle = Space(slength) ' make room in the buffer
retval = GetWindowText(hwnd, WndTitle, slength) ' get title bar text
GetClassName hwnd, WClass, 50
EnumChildProc = 1 ' return value of 1 means continue enumeration
End Function
½á¹ûÁбíÔÚexcelÖУ¬´°¿Ú¾ä±úΪ66622µÄÀà¿ÉÒÔÕÒµ½£¬µ«ÊÇTitleȴΪ¿Õ
ChildWndHnd ChildWndClass ChildWndTitle
66624 TCoolBar
66626 TToolBar
66620 TCoolBar
66622 TToolBar
66618 TPanel
µ«ÊÇΪʲôSPY++ÖÐÈ´¿ÉÒÔÕÒµ½£º
retval = GetWindowText(hwnd, WndTitle, slength)
¼ì²éretvalµÄÖµ,¿´¿´º¯ÊýÖ´ÐеĽá¹ûÊÇʲô.
APIµÄµ÷Óö¼»áÓзµ»ØÖµ,¶¼»á¸æËßÄã·¢ÉúÁËЩʲô.
ÒÔÉÏ´úÂë¿´²»³öhwndÊÇÈçº
Ïà¹ØÎÊ´ð£º
Ò»¸ö´°Ì壬3¸ödatagrid£¬¹²¼Æ3¸ö±í£¬Ò»¸ö±í¶ÔÓ¦Ò»¸ödatagrid£¬µã»÷datagrid1(´ò¿ª¸Ã´°ÌåʱÒѾ±»¸³Öµ)£¬¸ù¾Ýdatagrid1ÖеÄij¸öÖµ£¬²éѯ±í2ºÍ±í3£¬²¢°Ñ·ûºÏÌõ¼þµÄ·Ö±ð¸³Öµ¸ødatagrid2ºÍdatagrid3£¬ÒªÔõôд
VB ......
ÎÒÏëдһ¸öasp¶ÁÈ¡±¾µØ»ú×ÓµÄÍøÍ«µÄ¹¦ÄÜ£¬ÐèÒªÓÃvbдһ¸ödll ÔÚÍøÉÏÕÒÁËһϣ¬°ÑÏÂÃæµÄ¶Î¿½Èëvb¹¤³ÌÀ
Option Explicit
Private Const NCBASTAT = &H33
Private Const NCBNAMSZ = 16
Private ......
ÎÒÔÚÎÒµçÄÔ(ÆÁÄ»±È½Ï´ó)Éè¼ÆÒ»¸ö½çÃæ,µ«ÊÇÔÚÆÁÄ»±È½ÏСµÄµçÄÔÉϲâÊÔʱ,·¢ÏÖ°´Å¥²»»áËæ×ÅÆÁÄ»´óС¶ø×Ô¶¯±ä´óС.
ÒªÔõôÉè?
Me.Height = Screen.Height * 0.6
Me.Width = Screen.Width * 0.6
VB cod ......
Ôõôµã»÷form2Éϵİ´Å¥ ¿ÉÒÔ½áÊøform1ÉÏÕýÔÚ½øÐеÄÑ»·
form1ÀïÃæÌí¼ÓÒ»¸ö±äÁ¿£º
Public bEnd As Boolean
Ñ»·´úÂëÌí¼Ó£º
bEnd = False
Do
...
If ......