[Interest] Convert WId to HWND

Joseph Crowell joseph.w.crowell at gmail.com
Fri Dec 28 11:03:12 CET 2012


AFAIK this is also why QtSingleApplication cannot work on Qt 5 too.

On 12/28/2012 09:44 AM, Bo Thorsen wrote:
> Hi Sean,
>
> Den 20-12-2012 13:30, Sean Harmer skrev:
>> On Thursday 20 December 2012 12:11:43 Bo Thorsen wrote:
>>> In Qt4, WId was a platform independent window handle. On Windows this
>>> was just a typedef from HWND. But in Qt5, that's no longer the case.
>> Take a look at:
>>
>> virtual QPlatformNativeInterface *QWindowsIntegrationnativeInterface() const
> QPlatformNativeInterface is a private class. Yes, it's nice for
> inspiration, but I'm pretty amazed at how difficult this is with Qt 5. I
> find it hard to believe that it's so hard to get to the HWND.
>
>> and
>>
>> void *QWindowsNativeInterface::nativeResourceForWindow(const QByteArray
>> &resource, QWindow *window)
>>
>> in src/plugins/windows. With the QWindowsNativeInterface you can obtain the
>> native HWND and device context I think.
> ATM it looks like I pretty much have to copy the entire source code for
> all the HWND access, just to get to the HWND from a widget. That sucks :(
>
> Right now, I have given up on a platform independent way to store window
> handles. My goal now is just to call a windows specific function with
> the HWND from a QWidget window. Something like this:
>
> WindowsFunction(getHWND(myWidget));
>
> If this is not possible in Qt 5 without bad hacks, then it's a problem
> that needs to be adressed.
>
> I'm still hoping that I just missed the proper solution.
>
> Bo Thorsen.
>




More information about the Interest mailing list