MFC中 創建基於CFormView的文檔視圖程序


    在MFC中可以創建多種類型的窗口程序,如對話框程序、單文檔結構程序(非文檔/視圖結構)、單文檔(文檔/視圖結構)以及多文檔視圖結構程序等。

 

    在編寫一般的小工具時,我們的首選顯然是對話框程序,不過基於對話框的程序不支持視圖類,有些功能實現起來會麻煩許多。此時我們可以使用CFormView作為基類來創建單文檔(非文檔/視圖結構)和單文檔(文檔/視圖結構)的程序。

 

一、使用MFC向導創建程序

 

(1)單文檔(文檔/視圖結構)

 

(2)不需要狀態欄和工具欄

 

(3)使用CFormView作為基類

 

(4)使用向導創建好的程序窗口

二、程序初始化設置

 

在這個由MFC向導創建的程序窗口中有些功能或許是我們不想要的,比如視圖標題、視圖凹陷效果、菜單欄、鼠標拖動窗口邊框調整窗口大小等。

 

1. 不顯示視圖標題、禁止以拖動方式調整窗口大小、禁用菜單欄

 

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    if( !CFrameWnd::PreCreateWindow(cs) )
        return FALSE;
    // TODO: 在此處通過修改
    //  CREATESTRUCT cs 來修改窗口類或樣式
    cs.style &= ~FWS_ADDTOTITLE;  /* 不顯示視圖標題 */
    cs.style &= ~WS_THICKFRAME; /* 禁止以拖動方式調整窗口大小 */
    cs.hMenu = NULL;
    return TRUE;
}

 

2. 去除視圖凹陷效果

 

BOOL CTestView::PreCreateWindow(CREATESTRUCT& cs)
{
    // TODO: 在此處通過修改
    //  CREATESTRUCT cs 來修改窗口類或樣式
    cs.style &= ~WS_BORDER; /* 去除視圖凹陷效果 */

    return CFormView::PreCreateWindow(cs);
}

3. 修改程序窗口標題

 

BOOL CTestApp::InitInstance()
{

    ....

    ....

    ....

    m_pMainWnd->SetWindowText( L"測試程序" ); /* 修改程序窗口標題 */

 

    // 唯一的一個窗口已初始化,因此顯示它並對其進行更新
    m_pMainWnd->ShowWindow(SW_SHOW);
    m_pMainWnd->UpdateWindow();
    // 僅當具有后綴時才調用 DragAcceptFiles
    //  在 SDI 應用程序中,這應在 ProcessShellCommand  之后發生
    return TRUE;

}

 

經過以上幾步的設置,程序界面就基本符合我們的需求了。

 

 

 

來源:http://hi.baidu.com/jjxiaoyan/item/b01b2aed41eb4811595dd80d


免責聲明!

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



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