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



来自为知笔记(Wiz)



posted on 2013-10-20 23:06  Alberl  阅读(12869)  评论(2编辑  收藏  举报

导航