MFC TabCtrl的基本用法

2021-07-08 12:32:03 字數 1855 閱讀 5891

1、首先建立乙個基於mfc對話方塊框架,在對話方塊資源上從工具箱中新增上乙個tab 

control的控制項,根據需要修改一下屬性,然後右擊控制項,為這個控制項新增乙個變數,將此控制項跟乙個ctabctrl類變數繫結在一起,這裡設為m_tabctrl  

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

border:none  

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

style  

:child  

//  

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

然後從這兩個對話方塊模板生成兩個新的對話方塊類cdialog1,cdialog2。  

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

cdialog1  

m_mm1; 

cdialog2  

m_mm2;  

新增完後,注意加上兩對話方塊的標頭檔案:

#include "dialog1.h",#include "dialog2.h"

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

bool ctabctrldlg::oninitdialog()

解釋如下: 

insertitem函式是為了給標籤控制項增加兩個標籤頁面,文字是標題。 

setwindowpos()函式設定這兩個對話方塊在z順序中的位置,顯示或隱藏狀態.。  

5、在主對話中為標籤控制項新增乙個標籤選擇改變(tcn_selchange)的控制項通知訊息,以便在使用者選擇標籤時通知主對話方塊。在主對話方塊的編輯介面右擊標籤控制項,選擇新增乙個事件可以完成這個操作。  

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

void  

ctabdialogdlg::ontcnselchangetab1(nmhdr  

*pnmhdr,  

lresult  

*presult) 

*presult = 0;

}  使 對話方塊 適用於 ctabctrl 的方法:

新建兩個對話方塊:

屬性為:

border: none

style: child

新增相應的類:

cmydlg1 mydlg1;

cmydlg2 mydlg2;

ctabctrl m_tabctrl;

bool ctabctrldlg::oninitdialog()

{int npos=0;

m_tabctrl.insertitem(npos++, _t("dlg1"));

m_tabctrl.insertitem(npos++, _t("dlg2"));

mydlg1.create(idd_dlg1, &m_tabctrl);

mydlg2.create(idd_dlg2, &m_tabctrl);

mydlg1.showwindow(sw_show);

mydlg2.showwindow(sw_hide);

bool cmydlg1::oninitdialog()

{crect rc(0,0,0,0);

getparent()->getclientrect(& rc);

((ctabctrl *)getparent())->adjustrect(false, &rc);

movewindow(&rc);

bool cmydlg1::oninitdialog()

{crect rc(0,0,0,0);

getparent()->getclientrect(& rc);

((ctabctrl *)getparent())->adjustrect(false, &rc);

movewindow(&rc);

mysql 的基本用法 mysql基本用法

mysql 5.1 中文參考手冊 show databases 顯示資料庫 drop database 資料庫名 刪除資料庫 set names utf8 設定資料庫編碼為utf 8 source x 資料庫名.sql 匯入乙個資料庫 use 資料庫名 嘗試訪問資料庫 create database...

mysql 的基本用法 mysql基本用法

mysql 5.1 中文參考手冊 show databases 顯示資料庫 drop database 資料庫名 刪除資料庫 set names utf8 設定資料庫編碼為utf 8 source x 資料庫名.sql 匯入乙個資料庫 use 資料庫名 嘗試訪問資料庫 create database...

this的基本用法

this 代表所在類的物件的引用。方法被那個物件呼叫,this就代表哪個物件,簡單的說,他就代表當前類的乙個物件。注意 誰呼叫這個方法,在方法內部的this就代表誰。this的應用場景 解決區域性變數,隱藏成員變數。class student 姓名設定值 public void setname st...