duilib加载MFC框架编写的ocx插件教程

NDIS herman 827浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

如果你用过duilib,那么你将对它爱不释手。现在一般新的项目都是使用duilib来做界面库的。但是一些老的项目使用的是MFC框架,新的项目调用老项目的OCX插件就面临着框架不一样的问题。本文将通过一段小代码,教你如何让duilib顺利的加载MFC框架的ocx插件。

在duilib中使用MFC控件

自定义一个duilib控件来容纳MFC控件,xml布局界面文件中使用该控件,使用非duilib控件来标记,比如:XttblogMfcWnd,非duilib控件需要自己在响应CreateControl创建,创建该控件时之后将MFC控件句柄绑定在一起(通过Attach)。
duilib中MFC控件的响应
win32是通过WM_COMMAND进行消息传递的,我们只需截获WM_COMMAND,而duilib的WM_COMMAND等windows消息可以在HandleMessage函数里截获,比如:

LRESULT CDuiFrameWnd::HandleMessage( UINT uMsg, WPARAM wParam, LPARAM lParam )  
{  
    switch (uMsg)  
    {  
    case WM_COMMAND:  
        if (IDC_BUTTON_DUI_NEXT == wParam)  
        {  
            if (m_pDlgMain)  
            {  
                m_pDlgMain->OnBnClickedButtonSendMsg();  
            }  
        }  
        break;  
    default:  
        break;  
    }  
  // www.xttblog.com
    return __super::HandleMessage(uMsg, wParam, lParam);  
}

我的demo调用mfc框架的运行效果如下:duilib 加载MFC ocx

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号1:xmtxtt(5000人已满),微信号2:codedq(5000人已满),微信号3:xttblog(超2800)。备注:“xttblog”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » duilib加载MFC框架编写的ocx插件教程