首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt初学者,求教 FindWindow用法

2012-09-13 
Qt菜鸟,求教 FindWindow用法我在windows下面做desktop程序,需要获取其他程序的窗口句柄,在使用FindWindow

Qt菜鸟,求教 FindWindow用法
我在windows下面做desktop程序,需要获取其他程序的窗口句柄,在使用FindWindow函数的使用,老是无法编译通过。

C/C++ code
int MainWindow::getIJPASFreq(){    HWND hwind = ::FindWindowW(NULL,QString::fromUtf8("IJPAS").toStdWString().c_str());    if(!hwind)        QMessageBox::information(this,tr("Warning"),tr("can't get IJPAS Window Handle!"));    return 0;}


报错内容为:
mainwindow.obj : error LNK2019: 无法解析的外部符号 __imp__FindWindowW@8,该符号在函数 "private: int __thiscall MainWindow::getIJPASFreq(void)" (?getIJPASFreq@MainWindow@@AAEHXZ) 中被引用

[解决办法]
这是Windows SDK的内容。估计是忘了包含头文件windows.h的原因。

[解决办法]
直接使用FindWindow
[解决办法]
窗口构造的时候调用: setAccessibleName(strName)

下面是需要查找的地方:
QWidget* GetWidgetPtrByName(QString strWidget)
{
QWidgetList widgetLst;
QWidget *pWidget = NULL;
QString strName;
widgetLst = qApp->allWidgets();
for(int i = 0; i < widgetLst.size(); i++)
{
pWidget = widgetLst.at(i);
strName = pWidget->accessibleName();
if(strName == strWidget)
{
break;
}
}

return pWidget;
}

我这个是在linux下面这样做的,windows下应该也可以的,试试看。。

热点排行