MFC 對話方塊中tab控制項的使用

2021-06-04 01:32:13 字數 1516 閱讀 5444

1、首先建立乙個mfc對話方塊框架.

在對話方塊資源上從工具箱中新增上乙個tab control 控制項,根據需要修改一下屬性,然後右擊控制項,為這個控制項新增乙個變數,將此控制項跟乙個ctabctrl類變數繫結在一起,這裡設為m_tabctrl

2、建立兩個新的對話方塊資源,其屬性作如下修改:

border:none //邊界為空,這樣它就沒了標題欄

style :child // 這樣這個模板就可以當作另乙個視窗的子視窗了。

其它如果沒有必要,就不用改了。

在上面加一些控制項什麼的,具體操作跟普通對話方塊沒有區別。

完成後從這兩個對話方塊模板生成兩個新的對話方塊類。

3、在主對話方塊中為新新增進來的兩個類增加兩個變數:

cdialog1 m_mm1;

cdialog2 m_mm2;

4、在主對話方塊的oninitdialog()函式中新增如下類似的**:

crect rs;

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順序中的位置,顯示或隱藏狀態.。

5、在主對話中為標籤控制項新增乙個標籤選擇改變(tcn_selchange)的控制項通知訊息

在事件處理中新增如下**,如下例:

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 包含標頭檔案...