VB 获得句柄

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:58:10
一个程序中有几个按钮,没有文字,都是图片...
用FindWindowEx( , 0, vbNullString, "")这样寻找
只能找到第一个按钮的句柄
用什么函数可以找到其它按钮的句柄,
或是怎样用FindWindowEx找到其它按钮的句柄。
谢谢!

http://www.chinesebloger.com/dispbbs.asp?boardID=2&ID=14366&page=1

这里有一个获取指定窗体、控件句柄的函数,你看看有没有用。

用API函数EnumChildWindows可以枚举一个父窗体的子窗体,按钮是一种子窗体。
BOOL EnumChildWindows( HWND hWndParent,
WNDENUMPROC lpEnumFunc,
LPARAM lParam
);
其中WNDENUMPROC lpEnumFunc是回调函数,定义可以如下:
BOOL CALLBACK EnumChildProc( HWND hwnd,
LPARAM lParam
);
系统在枚举时自动为每个子窗口调用这个回调函数,hwnd参数就是当前子窗口的句柄,然后你可以用GetClassName获取类的名称,如果是Button,就可以采取相应的动作。

int GetClassName( HWND hWnd,
LPTSTR lpClassName,
int nMaxCount
);

EnumChildWindows

VB声明
Declare Function EnumChildWindows Lib "user32" Alias "EnumChildWindows" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
说明
为指定的父窗口枚举子窗口
返回值
Long,