資源描述:
《孫鑫第8課--對話框的編程(屬性頁,屬性表單)》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、選擇一個基于對話框的MFC工程。下面做一個逃跑按鈕。在對話框上添加兩個按鈕。新建一個CBtn,基類是CButton.為這個類添加:CBtn*pbtn;為這兩個按鈕關聯(lián)新建立的這個按鈕類。在BOOLCTestDlg::OnInitDialog()中添加:m_btn1.pbtn=&m_btn2;m_btn2.pbtn=&m_btn1;voidCBtn::OnMouseMove(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultShowWindow(SW_HIDE);pbtn->ShowWin
2、dow(SW_SHOW);CButton::OnMouseMove(nFlags,point);}運行,達到效果,但是初始化運行的時候能看到兩個按鈕。為此做如下修改:將其中一個按鈕的可見性不選。下面是屬性表單和向導的創(chuàng)建:創(chuàng)建一個MFC的單文檔程序。為菜單增加一個顯示屬性表單的按鈕,并添加VIEW類中響應。添加三個屬性頁對話框。(由于在上面要寫中文,將屬性改為中文),并為這三個屬性頁創(chuàng)建一個類,再新建一個對話框,為它創(chuàng)建一個屬性表單類。在屬性表單的頭文件中添加:(要包含三個屬性頁的頭文件)public:CPage1m_page1;CPage2m_page2;CPage3m_page3;為屬
3、性表單的構造函數(shù):CPageSheet::CPageSheet(UINTnIDCaption,CWnd*pParentWnd,UINTiSelectPage):CPropertySheet(nIDCaption,pParentWnd,iSelectPage){AddPage(&m_page1);AddPage(&m_page2);AddPage(&m_page3);}CPageSheet::CPageSheet(LPCTSTRpszCaption,CWnd*pParentWnd,UINTiSelectPage):CPropertySheet(pszCaption,pParentWnd,iS
4、electPage){AddPage(&m_page1);AddPage(&m_page2);AddPage(&m_page3);}voidCTestView::OnPage(){//TODO:AddyourcommandhandlercodehereCPageSheetps("屬性表單");ps.SetWizardMode();//設置向導,如沒這句,不是設置向導。ps.DoModal();}CPageSheet類不用關聯(lián)任何的對話框,直接創(chuàng)建這個類。為單選按鈕關聯(lián)一個成員變量。BOOLCPage1::OnSetActive(){//TODO:Addyourspecializedcode
5、hereand/orcallthebaseclassCPageSheet*psheet=(CPageSheet*)GetParent();psheet->SetWizardButtons(PSWIZB_NEXT);returnCPropertyPage::OnSetActive();}BOOLCPage2::OnSetActive(){CPropertySheet*psheet=(CPropertySheet*)GetParent();psheet->SetWizardButtons(PSWIZB_BACK
6、PSWIZB_NEXT);returnTRUE;}BOOLCPage3::OnSe
7、tActive(){//TODO:Addyourspecializedcodehereand/orcallthebaseclassCPropertySheet*psheet=(CPropertySheet*)GetParent();psheet->SetWizardButtons(PSWIZB_BACK
8、PSWIZB_FINISH);returnCPropertyPage::OnSetActive();}BOOLCPage1::OnInitDialog(){CPropertyPage::OnInitDialog();//TODO:Addextrainitializationhere((CL
9、istBox*)GetDlgItem(IDC_LIST1))->AddString("北京");((CListBox*)GetDlgItem(IDC_LIST1))->AddString("上海");((CListBox*)GetDlgItem(IDC_LIST1))->AddString("廣州");returnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEP