duilib主界面中创建mfc控件问题-未解决

1.要用到的MFC相关的头文件,需要放在duilib的头文件#include"UIlib.h"之前;

2.工程的设置需要将 MFC的使用 这项 从使用标准window改为 在共享DLL中使用MFC;

3. 按照教程上的步骤,在 CControlUI* CreateControl(LPCTSTR pstrClass)这个函数实现中 创建CButton,在CButton::Create函数时会有断言错误:

   _AFXWIN_INLINE HINSTANCE AFXAPI AfxGetInstanceHandle()
    { ASSERT(afxCurrentInstanceHandle != NULL);
        return afxCurrentInstanceHandle; }

这里当前句柄为空,出现断言弹框后,点忽略,也可以继续正常运行;

对于教程上的demo,估计应该是创建的mfc项目,然后在上面实现duilib主界面, 然后再在duilib主界面上创建button;

跟踪调试发现, 在duilib主界面 创建时,即create时,这个过程就调用了CreateControl这个函数,在这里创建CButton,在Cbutton的create过程中,会调用CWnd::CreateEx,这里需要获取当前instance,这里就是 AfxGetInstanceHandle(), 然后在这时断言错误;

发布了69 篇原创文章 · 获赞 10 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/u010096608/article/details/103739673
今日推荐