Get HWND on windows with Qt5 (from WId)

前端 未结 5 1199
梦如初夏
梦如初夏 2020-11-29 07:00

I am trying to convert a Qt4 Application to Qt5. The only thing I couldn\'t figure out is how to get the HWND of a Widget. The program uses EcWin7 to show the progr

5条回答
  •  伪装坚强ぢ
    2020-11-29 08:05

    In Qt5 winEvent was replaced by nativeEvent:

    bool winEvent(MSG* pMsg, long* result)
    

    is now

    bool nativeEvent(const QByteArray & eventType, void * message, long *result)
    

    And in EcWin7::winEvent you have to cast void to MSG:

    bool EcWin7::winEvent(void * message, long * result)
    {
        MSG* msg = reinterpret_cast(message);
        if (msg->message == mTaskbarMessageId)
        {
          ...
    

    I was able to get the application to work! Just replace:

     mWindowId = wid;
    

    with

     mWindowId = (HWND)wid;
    

提交回复
热议问题