解决方案 »
- 谁知道QQ2010 聊天界面中,信息显示框可以滚动鼠标变大,这个如何做?
- 俄罗斯方块
- unicode下debug和release下对字符的处理的区别?
- 没分了,但有个世纪难题,请教强人,在线等。虽然没有分,但给与万分的感激。
- 消息问题,还没弄透,大家帮我理清一下,谢谢!
- 我是vc++初学者
- 关于hook?
- 诚挚的请问哪儿有介绍串口通信书籍的下栽地址?还有:怎么去控制串口以二进制,ASCII,16进制传输呢?回答就有分的哦。
- 请教!如何在控制台程序中使用MFC类?
- 请问哪有vc函数库的电子书下载?
- vc++为什么要添加#include "stdafx.h"
- 如何在打开自定义文件格式时,使用软件的Load功能
所以如果有Dialog的WindowHandle,查找其所有子Window的WindowHandle可以
使用API FindWindow和FindWindowEx
参考下面:
HWND MyFindListViewWindow()
{
const int MyMaxParentWinCount = 4;
// 父窗口类名数组
char *A_szClassName[MyMaxParentWinCount] = {
"ThunderRT6FormDC",
"ThunderRT6Frame",
"ThunderRT6Frame",
"ListView20WndClass"
};
// 父窗口标题数组
char *A_szWinName[MyMaxParentWinCount] = {
Title,
"",
"",
""
};
// 首先求得顶级父窗口
HWND hMainWin = FindWindow(A_szClassName[0], A_szWinName[0]);
if (NULL==hMainWin) {
return NULL;
}
// 逐次用FindWindowEx函数求出各级子窗口
HWND hNextChildWin=NULL; HWND hLastWin=NULL;
for (int i=1; i<MyMaxParentWinCount; i++) {
if (1==i) {
hMainWin = FindWindowEx(hMainWin,NULL ,A_szClassName[i],A_szWinName[i]);
} else if (2==i) {
hNextChildWin = FindWindowEx(hMainWin,hNextChildWin,A_szClassName[i],A_szWinName[i]);
if (NULL==hNextChildWin) break;//
hNextChildWin = FindWindowEx(hMainWin,hNextChildWin,A_szClassName[i],A_szWinName[i]);
hLastWin=hNextChildWin;
} else {
hLastWin = FindWindowEx(hLastWin,NULL ,A_szClassName[i],A_szWinName[i]);
}
}
return hLastWin;
}