瑕佺敤濂藉畠錛岃繕鏄渶瑕佷竴浜涙妧宸х殑銆傜粡榪囩綉涓婃悳绱㈣祫鏂欙紝浠ュ強(qiáng)鎴戣嚜宸辯殑鎽哥儲(chǔ)錛屾妸涓浜涜鐐硅褰曞湪榪欓噷銆?/p>
Tab Control鐨勮繍琛屾晥鏋滄湁鐐瑰儚Property Sheet錛屼絾涓よ呰繕鏄湁涓浜涘尯鍒傛垜鐨勭悊瑙e氨鏄疨roperty Sheet涓昏鐢ㄥ湪瀵硅瘽妗嗕腑錛屽鏁版嵁榪涜榪涜鍒嗙被綆$悊銆傝孴ab Control浣跨敤鑼冨洿鏇村箍涓浜涳紝鏃㈠彲浠ョ敤鍦ㄥ璇濇錛屼篃鍙互鐢ㄥ湪瑙嗗浘涓紝闄や簡(jiǎn)鍙互綆$悊閰嶇疆鏁版嵁澶栵紝榪樺彲浠ュ杞歡鐨勭粍緇囪繘琛岃鍒掞紝姣斿鍙互閫氳繃瀹冩潵鍒囨崲涓嶅悓鐨勮鍥劇瓑絳夈?/p>
褰撶劧榪欎笉鏄病鏈変唬浠風(fēng)殑錛孴ab Control鐨勭紪紼嬪氨姣擯roperty Sheet鐨勫鏉傚緢澶氥?/p>
鎴戞渶鍒濇湁鐐規(guī)悶涓嶆噦錛屽浣曞湪Tab Control涓嬌鐢ㄤ笉鍚岀殑Page錛屽氨璞roperty Page涓鏍鳳紝Tab Control騫舵病鏈夋彁渚涗究鍒╃殑鏈哄埗璁╀綘杞繪澗鍋氬埌榪欎竴鐐廣傝繕濂斤紝VC鏄渶媯掔殑錛屾拻鑺憋綖閫氳繃鍙橀氱殑鏂規(guī)硶榪樻槸鍙互鍋氬埌榪欎竴鐐廣?/p>
涓嶇綏鍡︿簡(jiǎn)錛屼笂浠g爜銆?/p>
鍋囧鎴戠幇鍦ㄦ湁涓猄DI紼嬪簭錛孷iew鏄疐orm View錛屾兂鍦ㄤ笂闈㈡斁涓猅ab Control錛屽寘鍚袱涓狿age銆傜幇鍦ㄨ鎴戜滑鏉ョ湅鐪嬪簲璇ユ庢牱澶勭悊銆?/p>
棣栧厛褰撶劧瑕佸鍔犱竴涓猅ab Control璧勬簮錛岀劧鍚庡埄鐢–lass Wizard錛屽湪View涓鍔犱竴涓狢ontrol鍙橀噺銆?/p>
鎺ョ潃寤虹珛涓や釜瀵硅瘽妗嗚祫婧愶紝鍒繕浜?jiǎn)鎶奡tyle鏀逛負(fù)Child錛孊order鏀逛負(fù)None銆傜劧鍚庡氨鍙互鍦ㄤ笂闈㈠姞鍏朵粬鎺т歡浜?jiǎn)銆?/p>
鎺ョ潃鍒╃敤Class Wizard錛屽垎鍒負(fù)榪欎袱涓璇濇寤虹珛涓や釜綾伙紝姣斿CPage1鍜孋Page2銆?/p>
鐒跺悗鍦╒iew綾誨ご鏂囦歡涓紝鍔犲叆榪欎袱涓璇濇瀵硅薄銆傚悓鏃跺鍔犱竴涓彉閲廼nt m_CurSelTab錛岀敤浜?jiǎn)琛ㄦ槑鏄摢涓狿age鍗沖皢琚垏鎹€?/p>
涓轟簡(jiǎn)閬垮厤鐢ㄦ埛鍦ㄥ垏鎹ab鏃訛紝紼嬪簭瀵筎ab Index鐨勬灇涓撅紝鍙互鍒╃敤鏁扮粍鏉ュ仛榪欎釜浜嬫儏銆?/p>
鍦╒iew鐨勫垵濮嬪寲鍑芥暟涓渶瑕佹妸CPage1銆丆Page2鍜孴ab Control鍏寵仈璧鋒潵錛屽茍淇濆瓨欏甸潰鍦板潃錛岃緗垵濮嬮〉闈紝絳夌瓑銆?/p>
void CTab_testView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
//涓篢ab Control澧炲姞涓や釜欏甸潰
m_tab.InsertItem(0, _T("First"));
m_tab.InsertItem(1, _T("Second"));
//鍒涘緩涓や釜瀵硅瘽妗?br> m_page1.Create(IDD_DIALOG1, &m_tab);
m_page2.Create(IDD_DIALOG2, &m_tab);
//璁懼畾鍦═ab鍐呮樉紺虹殑鑼冨洿
CRect rc;
m_tab.GetClientRect(rc);
rc.top += 20;
rc.bottom -= 8;
rc.left += 8;
rc.right -= 8;
m_page1.MoveWindow(&rc);
m_page2.MoveWindow(&rc);
//鎶婂璇濇瀵硅薄鎸囬拡淇濆瓨璧鋒潵
pDialog[0] = &m_page1;
pDialog[1] = &m_page2;
//鏄劇ず鍒濆欏甸潰
pDialog[0]->ShowWindow(SW_SHOW);
pDialog[1]->ShowWindow(SW_HIDE);
//淇濆瓨褰撳墠閫夋嫨
m_CurSelTab = 0;
}
榪欓噷闈㈤渶瑕佹敞鎰忕殑鏄紝鎴戠敤浜?jiǎn)涓涓狢Dialog鎸囬拡鏁扮粍鏉ヨ繘琛屼繚瀛橈紝鏁扮粍鐨勫ぇ灝忔槸Tab Control欏甸潰鐨勪釜鏁幫紝鏁扮粍涓嬫爣瀵瑰簲鐫姣忎釜欏甸潰鐨勭儲(chǔ)寮曪紙榪欐牱鏂逛究蹇熷瓨鍙栵級(jí)銆?/p>
鐢ㄦ埛鍒囨崲鏃訛紝闇瑕佸搷搴旂浉鍏崇殑娑堟伅銆?/p>
void CTab_testView::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
pDialog[m_CurSelTab]->ShowWindow(SW_HIDE);
m_CurSelTab = m_tab.GetCurSel();
pDialog[m_CurSelTab]->ShowWindow(SW_SHOW);
*pResult = 0;
}
棣栧厛鎴戜滑鍏堟妸褰撳墠鐨勯〉闈㈤殣钘忚搗鏉ワ紝鐒跺悗寰楀埌鏂扮殑欏甸潰绱㈠紩錛屾渶鍚庡氨鎶婄浉鍏抽〉闈㈡樉紺哄嚭鏉ュ嵆鍙傝繖姣斾竴涓釜鍘繪灇涓劇畝鍗曞浜?jiǎn)銆?/p>
榪樻湁涓鐐規(guī)瘮杈冩湁鎰忔濓紝閭e氨鏄疍DX/DDV鏈哄埗鐨勮繍鐢ㄣ傝鎯寵幏寰桾ab Control鍚勪釜欏甸潰鐨勬暟鎹紝鍙互鍒╃敤DDX/DDV鏈哄埗錛屼絾闇瑕佹敞鎰忥紝鍥犱負(fù)榪欐槸澶氫釜欏甸潰錛屾墍浠ラ渶瑕佹樉寮忚皟鐢ㄥ嬈°?/p>
void CTab_testView::OnButton1()
{
// TODO: Add your control notification handler code here
m_page1.UpdateData();
m_page2.UpdateData();
CString str1 = m_page1.m_str1;
CString str2 = m_page2.m_str2;
AfxMessageBox(str1);
AfxMessageBox(str2);
}
緇忚繃榪欏嚑姝ュ鐞嗭紝鍩烘湰涓婃垜浠氨鍙互鍒╃敤Tab Control鐨勫己澶у姛鑳戒簡(jiǎn)銆?br>