zoukankan      html  css  js  c++  java
  • duilib进阶教程 -- 在duilib中使用MFC (2)

      好人做到底,送佛送到西。虽然上一篇教程已经说得很详细了,但Alberl还是再举一个例子。上一篇教程的主窗口是MFC的,所以这篇教程把主窗口换成duilib的~O(∩_∩)O~

      1、我们利用《2013 duilib入门简明教程 -- 完整的自绘标题栏(8)》里的XML做为主窗口,并且把客户区的控件都去掉,换成一个自定义控件<Dialog />

    。将XML改名为XMP_MAIN.xml,并放到exe目录。

      2、在CDuiFrameWnd::CreateControl()函数里,加入自定义控件Dialog的创建:

        if (_tcsicmp(pstrClassName, _T("Dialog")) == 0)
        {
            CWndUI  *pUI  = new CWndUI;   
            CXMPDlg *pDlg = new CXMPDlg; // 这里只是示例,请自行释放内存~
    
            pDlg->Create(IDD_XMP_DIALOG); 
            pUI->Attach(pDlg->GetSafeHwnd());  
            return pUI;
        }

      3、在CXMPApp::InitInstance()函数里,将

        CXMPDlg dlg;
        m_pMainWnd = &dlg;
        INT_PTR nResponse = dlg.DoModal();

      换成

        CDuiFrameWnd *pFrame = new CDuiFrameWnd(_T("XMP_MAIN.xml"));
        pFrame->Create(NULL, _T("DUIWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);
        pFrame->CenterWindow();
    
        m_pMainWnd = CWnd::FromHandle(*pFrame);
        INT_PTR nResponse = pFrame->ShowModal();

      4、将MFC对话框的风格改为子窗口模式,如下:

      然后运行,即可看到以下效果:

      同样,里面的控件都是可以响应的哦,那么到现在为止,MFC和duilib结合的所有方式都讲完了,那些为老项目界面犯愁的小伙伴们,赶紧动手试试吧~O(∩_∩)O~

      代码下载:http://download.csdn.net/detail/qq316293804/6428255





  • 相关阅读:
    MongoDB数据库新建数据库用户
    Grafana部署
    k8s ingress及ingress controller
    Rabbitmq如何安装插件
    RabbitMQ手册之rabbitmq-plugins
    RabbitMQ运行在Docker容器中
    K8S资源限制
    System类
    Runtime类
    StringBuffer类
  • 原文地址:https://www.cnblogs.com/Alberl/p/3379718.html
Copyright © 2011-2022 走看看