windows cpp 直接将图片数据绘制到 窗口A winid为0x99999的 离屏表面,如果Qt 也想在该窗口显示Qt的控件,是否可以直接将窗口H 设置为窗口A的子窗口
时间: 2023-12-03 21:42:56 浏览: 144
Aero.rar Qt Win10 窗口毛玻璃效果
4星 · 用户满意度95%
在Windows下,可以使用WinAPI的函数将图片数据绘制到指定的窗口的离屏表面上。如果您想在同一个窗口中显示Qt的控件,可以使用Qt的QWidget::createWindowContainer()函数将其转换为WinAPI的窗口句柄,然后将该窗口句柄设置为窗口A的子窗口。
示例代码:
```cpp
// 创建一个QWidget
QWidget* widget = new QWidget();
// 在QWidget中添加控件
// ...
// 将QWidget转换为HWND
HWND hwnd = (HWND)widget->winId();
// 将HWND设置为窗口A的子窗口
::SetParent(hwnd, (HWND)0x99999);
```
请注意,这种方法只适用于将Qt控件嵌入到现有的WinAPI窗口中。如果您想在Qt应用程序中创建新的窗口,请使用Qt的窗口类(如QMainWindow、QDialog等)。
阅读全文