我正在学习编程,在Qt / Windows中查找位置和分辨率数据时遇到了麻烦。我有可以做到的c ++函数。
这是我正在使用的Qt代码
void Edge_Window::on_pushButton_getInfo_6_clicked()
{
HWND h = FindWindow(NULL, TEXT("Edge Organizer"));
LPRECT rct;
GetWindowRect(h, rct);
qDebug() << "X = " << rct->left;
qDebug() << "Y = " << rct->top;
qDebug() << "Width = " << rct->right - rct->left;
qDebug() << "Height = " << rct->bottom - rct->top;
}
不幸的是,我从调试中得到的唯一答案是:
X = 1693732235
Y = 3465
Width = 644133493
Height = 79843420
无论我的屏幕位于何处,这都是响应。我尝试了GetForegroundWindow()
,但是它崩溃了。我的目标是获取标题,类,坐标和分辨率等信息,并能够在Windows的外部程序中进行设置。
答案 0 :(得分:0)
在您的代码rct
中,是指向RECT
的未初始化指针
您想要这个:
RECT rct;
GetWindowRect(h, &rct);
由于rct
不再是指针,而是RECT
,因此您还需要将所有rct->xxx
更改为rct.xxx
。
您的原始代码与此等效:
RECT *rct; // now it's a bit more obvious that rct is an uninitialized pointer
GetWindowRect(h, rct);