• 4964阅读
  • 3回复

Qt中windows api的使用问题 [复制链接]

上一主题 下一主题
离线yysniper
 

只看楼主 正序阅读 楼主  发表于: 2013-11-20

我想用qt遍历一个窗口的所有控件,用到了

BOOL EnumChildWindows(HWND hWndParent,WNDENUMPROC lpEnumFunc, LPARAM lParam);

在加了window.h后,可以正常调用该函数,但是其中的回调函数lpEnumFunc也就是

BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam);

不知道怎么用,我直接定义该函数的话,在函数体内无法调用程序界面控件也就是类似ui->lineEdit的调用不成功,如果我将该函数定义为程序类成员函数,在EnumChildWindows中又无法调用该回调函数,纠结中。

望指教

为技术而生
离线yysniper

只看该作者 3楼 发表于: 2013-12-03
为技术而生
离线yysniper

只看该作者 2楼 发表于: 2013-11-23
回 1楼(彩阳) 的帖子
我是在windows下,遍历别的程序的窗口上的所有控件,所以要用到windows api函数
为技术而生
离线彩阳

只看该作者 1楼 发表于: 2013-11-22
遍历所有控件在Qt是肯定支持的。因为Qt的所有控件直接或间接继承于QObject。
可以使用QQObject::children()来获得父控件的所有子控件。如果有非控件绑定在父控件上,那么就需要使用qobject_cast<QWidget*>来强转进行筛选。
上海Qt开发联盟,热忱地欢迎你的加入!
快速回复
限100 字节
 
上一个 下一个