假設(shè)A為主對話框,調(diào)用B子對話框時,首先需要在A的頭文件中聲明#include“B.h” 然后,在A的按鈕函數(shù)是編寫如下代碼: 法一:在A對話框按鈕對應(yīng)的函數(shù)中聲明一個B類型的指針,通過指
? ? ? ? ?假設(shè)A為主對話框,調(diào)用B子對話框時,首先需要在A的頭文件中聲明#include“B.h”
? ? ? ? ?然后,在A的按鈕函數(shù)是編寫如下代碼:
? ? ? ? ?法一:在A對話框按鈕對應(yīng)的函數(shù)中聲明一個B類型的指針,通過指針來達(dá)到調(diào)用B對話框的效果
//CDlgTestMode *dlh=new CDlgTestMode; //CDlgTestMode 為B的基類,這也是A中包含B頭文件的原因
//dlh->Create(IDC_STATIC_TEST_MODE,this); //第一個參數(shù)是被調(diào)用對話框ID號
//dlh->ShowWindow(SW_SHOW);
這種方法有時候會出錯。
? ? ? ? ?法二:通過DoModal()函數(shù)來實(shí)現(xiàn)
CDlgTestMode dlgTestMode(this); //CDlgTestMode 為B的基類
dlgTestMode.DoModal();
Invalidate(FALSE);
注:如果用戶點(diǎn)擊了確定按鈕,那么DoModal()函數(shù)就返回IDOK,此時進(jìn)入if語句。IDOK是一個宏。
當(dāng)你CMyDlg dlg;時,對話框并沒有顯示,只是構(gòu)造了一個CMyDlg類型的對象而已,直到用戶調(diào)用DoModal(),對話框才會顯示出來。
? ? ? ? ?以上函數(shù)都是在A主函數(shù)的按鈕中實(shí)現(xiàn)。
聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。