MFC中如何添加子窗口


在MFC中,有時候需要在同一個區域顯示不同的內容,比如,點擊某一個按鈕,在一個特定的區域顯示A,再次點擊之后,在同樣的區域顯示B,這個時候,就需要構建子窗口來解決問題。

    首先,按照上一篇的方法新建兩個窗口,此時需要注意的是,通過右鍵,選擇屬性,把窗口的style設置為child。

    然后,在父窗口上用PictureControl選擇出一個區域,將來讓子窗口顯示在這個區域中。

    然后在父類的初始化函數中作如下的改動:

      BOOL CEnqiureNote_NewDlg::OnInitDialog()
    {
     CDialog::OnInitDialog();

    //下面的m_NewDlg_Info和m_NewDlg_Enqiure是將要顯示在同一個區域的不同的類,其中默認顯示第一個。
     m_NewDlg_Info.Create(IDD_ENQIURENOTE_NEWDLG_INFO,this);  

     m_NewDlg_Enqiure.Create(IDD_ENQIURENOTE_NEWDLG_ENQIURE,this);

//讀取嵌入位置,IDC_STATIC_ChildArea是剛才的PictureControl的ID,m_Dialog 是一個CRect的變量,需要在頭文件進行聲明。

     GetDlgItem(IDC_STATIC_ChildArea)->GetWindowRect(&m_DialogChild);
     ScreenToClient(m_DialogChild);

    //以下的功能是顯示m_NewDlg_Info的內容。為了顯示m_NewDlg_Enqiure,可以在相應的處理函數中放入這行代碼,並隱藏

//m_NewDialog_Info即可。
     m_NewDlg_Info.MoveWindow(m_DialogChild);
     m_NewDlg_Info.ShowWindow(SW_SHOW);
     GetDlgItem(IDC_STATIC_ChildArea)->ShowWindow(false);

     return TRUE;
    }

這樣就完成了MFC中添加子內容到某一個區域的功能。


免責聲明!

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



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