Embed QDialog window into win32
-
Good day,
I don't know if I'm in the right forum but I'll be glad if someone could please help me that will be awesome.
I'm stuck on an integration issue between Win32 app and Qt application. I'm trying to embed a QDialog window into a Win32 app built with visual studio 2012.
Let's assume a simple QDialog that has QGraphicsView which contains a couples of items (image, button, ...). When I invoke the dialog by exec() function, it pop up the window and display my QGraphicsView with its items without problem.
Now, I want to put my QDialog window as a child of my Win32 app so I will be able to call it from there by the following code:QDialog* m_Dialog = new QDialog(); // ... // ad Qgraphics view + add widget //... HWND hdialog = (HWND)m_Dialog->winId(); HWND window = CWnd::FromHandle(hdialog)->GetSafeHwnd(); if (::IsWindow(window) && ::IsWindow(m_hWnd)) //m_hWnd = pointer to a parent { // Reparent the window to us ::SetParent(window, m_hWnd); DWORD style = ::GetWindowLong(window, GWL_STYLE); style &= ~(WS_POPUP|WS_CAPTION); style |= WS_CHILD; ::SetWindowLong(window, GWL_STYLE, style); ::ShowWindow(window, SW_SHOW); CRect rcCli; GetClientRect(rcCli); // Move it ::MoveWindow(window, 0, 0, rcCli.Width(), rcCli.Height(), TRUE); ::UpdateWindow(m_hWnd); }
The problem is my Dialog window is shown within win32 app but my QGraphicsView is totally empty? and I don't catch it why?
Thanks in advance!
-
Hi,
There might be something for you in the QtWinMigrate module from the QtSolutions repository.
Hope it helps
-
@ambershark Many thanks you were right!!!!