QMdiSubWindow

时间:2015-12-25 18:58:11

标签: c++ qt hwnd

我试图获取我添加到QMdiArea的QMdiSubWindow的HWND。

我使用以下代码来获取句柄:

Dialog* subWindow = new Dialog(this);
QMdiSubWindow* sw = ui->mdiArea->addSubWindow(subWindow);
(HWND) hwnd = id->winId();

为了测试它是否有效我使用了以下代码:

SetWindowText(hwnd, "Hello, World!");

什么都没发生。如果我运行以下代码:

 SetWindowText((HWND) this->winId(), "Hello, World!");

它适用于主窗口。代码放在主窗口的构造函数中。子窗口类的类型是QDialog。

任何想法如何让它发挥作用?

1 个答案:

答案 0 :(得分:0)

你可能有正确的public String convertFromBytes(byte[] input) { System.out.println("BYTES ARE =="+ Hex.encodeHexString(input)); System.out.println("VALUE IS "+ new String(input, this.charset)); return new String(input, this.charset); } ,但它实际上可能不是你正在寻找的那个(一个可见的窗口实际上可能是由几个嵌套的窗口组成的:你可能相信当你找到正确的窗口时实际上希望接孩子或父母。

我建议您使用Microsoft spy tool,使用finder tool选择您感兴趣的mdi小部件(直接在您显示的GUI上),间谍工具会为您提供HWND。然后你可以检查Qt报告你同样的身份。