zoukankan      html  css  js  c++  java
  • wxWidgets 和 MFC 混合使用

    其实网上有很多此类的文章了,但是有一点细节没有提到。

    举例说,我们有一个MFC写的APP,调用了很多MFC DLL,DLL里面有Dialog。如果我们要用wxWidget重写其中的一个Dialog,并且要这个Dialog ShowModal,就会需要到一点小小的技巧。

    void DllConfig(HWND hParent)
    {
        ConfigDialog dlg(Null);

        dlg.ShowModal();
    }

    这个ShowModal是不会正常工作的,因为parent为NULL。为了正常工作,构造需要ConfigDialog(wxWindow *parent...),而传进来的参数是RAW Handle。怎么办呢?我们来一个小小的hack:

    void DllConfig(HWND hParent)
    {
        wxWindow win;
         win.SetHWND((WXHWND)hParent);
         win.Enable(false);

        ConfigDialog dlg(&win);

        dlg.ShowModal();
        win.Enable(true);
         win.SetHWND(NULL);
    }

  • 相关阅读:
    第六周上机任务
    java第四次作业
    第二次上机练习
    第三周作业
    第一次上机作业
    计算机1802刘思源
    第五次上机作业
    第六周作业
    第四次上机作业
    第三次上机作业
  • 原文地址:https://www.cnblogs.com/skogkatt/p/4163293.html
Copyright © 2011-2022 走看看