[Interest] QWindow::setTransientParent fails on windows

Tony Rietwyk tony at rightsoft.com.au
Thu Sep 26 02:44:20 CEST 2013


Hi Roland, 

 

I'm not sure what you are trying to achieve,  but I had a similar problem
with the splash screen appearing with its own task bar tab.   I worked
around the problem by doing:

 

      int exstyle = GetWindowLong( mpSplash->winId(), GWL_EXSTYLE );

      SetWindowLong( mpSplash->winId(), GWL_EXSTYLE, 

            exstyle & ~WS_EX_TOOLWINDOW );

 

before showing the splash.  

 

Hope that helps, 

 

Tony

 

 

From: interest-bounces+tony=rightsoft.com.au at qt-project.org
[mailto:interest-bounces+tony=rightsoft.com.au at qt-project.org] On Behalf Of
Roland Winklmeier
Sent: Thursday, 26 September 2013 2:34 AM
To: interest at qt-project.org
Subject: [Interest] QWindow::setTransientParent fails on windows

 

Hi there,

I'm currently struggling with QWindow::setTransientParent on a windows
platform. I have two different windows and want to set one as the child of
the other. Using QWindow::setParent() was not successful, because it was
embedded into the parent (I got the parent QWindow* by calling fromWinID() )

If I call QWindow::setTransientParent(parent), nothing changes. I have two
different entries in the taskbar instead of one and both windows are still
parentless.
After looking into the code in the windows platform plugin, I found out that
the following method is called in qwindowswindow.cpp:

void QWindowsWindow::updateTransientParent() const. 

This method sets the parent by setting GWL_HWNDPARENT. But MSDN explicitly
said, you should NOT do it this way:

"You must not call SetWindowLong with the GWL_HWNDPARENT index to change the
parent of a child window. Instead, use the SetParent function. "
Source:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633591%28v=vs.85%2
9.aspx

So I assume this should be changed in the windows platform plugin to be a
real parent? Are there any other options to set the parent without embedding
it?

Cheers

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20130926/32b43b0b/attachment.html>


More information about the Interest mailing list