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






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM