我试图获取我添加到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。
任何想法如何让它发挥作用?
答案 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报告你同样的身份。