编程论坛
注册
登录
编程论坛
→
C++教室
求助 C++ ApI 问题
袁德凯
发布于 2011-04-10 18:08, 557 次点击
怎样用 EnumChildWindows( hwnd, WNDENUMPROC lpEnumFunc, LPARAM lParam );
玫举所有窗口控件啊,我看了文档,看不懂。是否可以给我一个可行的例子。玫举一个窗口的所有控件,并把它们的标题打出来。
7 回复
#2
rjsp
2011-04-10 18:14
这是 windows api,不是C++ api,C++也不可能有api,因为她是个语言而非平台
#3
yuccn
2011-04-10 19:06
EnumChildWindows( hwnd, WNDENUMPROC lpEnumFunc, LPARAM lParam );
自己hwnd为枚举目标对话框。lpEnumFunc为自己定义的回调函数,lParam为参数值;
比如:
HWND hWnd = ::FindWindow("QQ");
if (hWnd != NULL) {
::EnumChildWindows(hWnd, (WNDENUMPROC)EnumChildProc, NULL); // 如果要什么其他参数 就可以把它代替NULL
}
-------------------------------
----------------------------------
就这么简单,让我们再定义一个回调函数,像下面这样:
BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam )
{
WCHAR wzCaption[128] = { 0 };
::GetWindowText(hwnd, wzCaption, _countof(wzCaption));
::MessageBox(NULL, wzCaption, L"这个是枚举出来的子窗口", MB_OK);
return TRUE;// 如果不想再枚举了,这里就return FALSE
}
#4
pangding
2011-04-11 08:29
大家答得还挺快~
#5
袁德凯
2011-04-16 23:15
回复 3楼 yuccn
你用什么编写的啊?我用VC6.0不行啊!!!
#6
袁德凯
2011-04-16 23:16
不过还是要谢谢你的回答
#7
诸葛修勤
2011-04-17 10:41
建的是什么工程 类型?
#8
袁德凯
2011-04-18 13:56
回复 7楼 诸葛修勤
什么工程都行,弄出结果就行。
1