1、首先建立乙個mfc對話方塊框架.
在對話方塊資源上從工具箱中新增上乙個tab control 控制項,根據需要修改一下屬性,然後右擊控制項,為這個控制項新增乙個變數,將此控制項跟乙個ctabctrl類變數繫結在一起,這裡設為m_tabctrl2、建立兩個新的對話方塊資源,其屬性作如下修改:
border:none //邊界為空,這樣它就沒了標題欄3、在主對話方塊中為新新增進來的兩個類增加兩個變數:style :child // 這樣這個模板就可以當作另乙個視窗的子視窗了。
其它如果沒有必要,就不用改了。
在上面加一些控制項什麼的,具體操作跟普通對話方塊沒有區別。
完成後從這兩個對話方塊模板生成兩個新的對話方塊類。
cdialog1 m_mm1;4、在主對話方塊的oninitdialog()函式中新增如下類似的**:cdialog2 m_mm2;
crect rs;5、在主對話中為標籤控制項新增乙個標籤選擇改變(tcn_selchange)的控制項通知訊息m_tab.getclientrect(&rs);
rs.top+=20;
rs.bottom-=1;
rs.left+=1;
rs.right-=2;
m_tab.insertitem(0,"第一頁");
m_tab.insertitem(1,"第二頁");
m_mm1.create (idd_dialog1,&m_tabctrl);//或者create(idd_dialog1,getdlgitem(idc_tab1));
m_mm2.create (idd_dialog2,&m_tabctrl);
m_mm1.movewindow(&rs);
m_mm2.movewindow(&rs);
m_mm1.showwindow(true);
m_mm2.showwindow(false);
解釋如下:
兩個insertitem函式的呼叫是為了給標籤控制項增加兩個標籤頁面,文字是標題。
setwindowpos()函式設定這兩個對話方塊在z順序中的位置,顯示或隱藏狀態.。
在事件處理中新增如下**,如下例:void ctabdialogdlg::ontcnselchangetab1(nmhdr *pnmhdr, lresult *presult)
*presult = 0;
}要想知道使用者選擇那個標籤頁,要通過m_tabctrl.getcursel() 函式。為了不使顯示的子對話方塊覆蓋標籤控制項的顯示,所以要獲得標籤控制項的尺寸然後設定各頁面的尺寸。
MFC對話方塊控制項 Edit Control
edit視窗是用來接收使用者輸入最常用的乙個控制項。建立乙個輸入視窗可以使用成員函式 bool cedit create lpctstr lpsztext,dword dwstyle,const rect rect,cwnd pparentwnd,uint nid 0xffff 其中dwstyle將...
mfc中的對話方塊
mfc的對話方塊.分類 模式 非模式相關類 cdialog類 父類是cwnd類.提供了對話方塊的基本操作.ccommondialog類 父類是cdialog類,稱為通用對話方塊類,包括以下6個子類 分別是檔案對話方塊,顏色對話方塊,字型對話方塊,查詢替換對話方塊 頁面設定對話方塊和列印對話方塊.cp...
mfc 子對話方塊控制父對話方塊 MFC對話方塊構架程式
遺憾的是 從來沒有被堅定選擇過,就像是,他只是剛好需要,你只是剛好在。網易雲熱評 一 對話方塊架構分類 1 模式對話方塊,彈出來不能進行其他操作 2 無模式對話方塊,彈出來後可以進行其他操作 二 新建win32應用程式 模式對話方塊 1 建立 2 修改屬性 3 新增dialog資源 4 包含標頭檔案...