最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VC中Tab control控件的用法詳細(xì)解析

 更新時(shí)間:2013年09月16日 10:25:11   投稿:jingxian  
以下是對(duì)VC中Tab control控件的用法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下哦

1. 新建一個(gè)MFC工程, 取名MyTab, 選擇Dialog based, 然后Finish.

2. 刪除對(duì)話框上默認(rèn)添加的三個(gè)控件. 添加Tab Control控件并在Property屬性中設(shè)置ID為IDC_TABTEST 在More Styles里勾上Bottom. 調(diào)速尺寸使其布滿整個(gè)對(duì)話框, 我這邊Tab Control的尺寸最后為164X203. 在ClassWizard為其添加變量, 變量名為m_tab. 類型為CTabCtrl.

3. 在對(duì)話框的初始化函數(shù)OnInitDialog里面添加如下代碼:
m_tab.InsertItem(0,"參數(shù)一");  //添加參數(shù)一選項(xiàng)卡
m_tab.InsertItem(1,"參數(shù)二");  //添加參數(shù)二選項(xiàng)卡
m_tab.InsertItem(2,"結(jié)果");    //添加結(jié)果選項(xiàng)卡

4.在對(duì)話框資源里面添加三個(gè)對(duì)話框資源, ID分別命名為IDD_PARA1, IDD_PARA2, IDD_RESULT. 字體為宋體, 字號(hào)為9, style為Child, Border為None, 寬度調(diào)整為161. 再分別為其添加對(duì)應(yīng)的基于CDialog類CPara1, CPara2, CResult.

5. 在CMyTabDlg類中添加三個(gè)成員變量m_para1, m_para2, m_result, 分別是三個(gè)子對(duì)話框的實(shí)例. 代碼如下:
CResult m_result;
CPara2 m_para2;
CPara1 m_para1;

7. 為CPara1類添加成員函數(shù)int GetParaValue() 代碼如下:

復(fù)制代碼 代碼如下:

int CPara1::GetParaValue()
...{
    return m_nPara1;
}

為CPara2類添加成員函數(shù)int GetParaValue() 代碼如下:
復(fù)制代碼 代碼如下:

int CPara2::GetParaValue()
...{
    return m_nPara2;
}

為CResult類添加成員函數(shù)void SetResultValue(int nResult) 代碼如下:
復(fù)制代碼 代碼如下:

void CResult::SetResultValue(int nResult)
...{
     m_nResult= nResult;
}

8. 在IDD_MYTAB_DIALOG對(duì)話框的初始化函數(shù)OnInitDialog里面添加如下代碼:
復(fù)制代碼 代碼如下:

//關(guān)聯(lián)對(duì)話框,并且將IDC_TABTEST控件設(shè)為父窗口
m_para1.Create(IDD_PARA1,GetDlgItem(IDC_TABTEST));
m_para2.Create(IDD_PARA2,GetDlgItem(IDC_TABTEST));
m_result.Create(IDD_RESULT,GetDlgItem(IDC_TABTEST));
   
//獲得IDC_TABTEST客戶區(qū)大小
CRect rs;
m_tab.GetClientRect(&rs);
//調(diào)整子對(duì)話框在父窗口中的位置
rs.top+=1;
rs.bottom-=60;
rs.left+=1;
rs.right-=2;
   
//設(shè)置子對(duì)話框尺寸并移動(dòng)到指定位置
m_para1.MoveWindow(&rs);
m_para2.MoveWindow(&rs);
m_result.MoveWindow(&rs);

//分別設(shè)置隱藏和顯示
m_para1.ShowWindow(true);
m_para2.ShowWindow(false);
m_result.ShowWindow(false);
   
//設(shè)置默認(rèn)的選項(xiàng)卡
m_tab.SetCurSel(0);


9. 添加Tab Control控件的TCN_SELCHANGE事件響應(yīng)函數(shù)OnSelchangeTabtest(NMHDR* pNMHDR, LRESULT* pResult) ,函數(shù)體代碼如下:
復(fù)制代碼 代碼如下:

int CurSel= m_tab.GetCurSel();
    switch(CurSel)
    ...{
    case0:
         m_para1.ShowWindow(true);
         m_para2.ShowWindow(false);
         m_result.ShowWindow(false);
        break;
    case1:
         m_para1.ShowWindow(false);
         m_para2.ShowWindow(true);
         m_result.ShowWindow(false);
        break;
    case2:
         m_para1.ShowWindow(false);
         m_para2.ShowWindow(false);
         m_result.ShowWindow(true);
        break;
    default:
         ;
     }   
   
    *pResult= 0;

10. 在IDD_MYTAB_DIALOG對(duì)話框下面添加一個(gè)按鈕, 標(biāo)題為"計(jì)算" 為其添加事件響應(yīng)函數(shù), 代碼如下:
復(fù)制代碼 代碼如下:

m_para1.UpdateData(true);
     m_para2.UpdateData(true);
     m_result.SetResultValue(m_para1.GetParaValue()+m_para2.GetParaValue());
     m_result.UpdateData(false);

11.這個(gè)小程序很簡單,但是他說明了Tab Control控件的基本用法.

注意:
1://關(guān)聯(lián)對(duì)話框,并且將IDC_TABTEST控件設(shè)為父窗口(方法2)
m_para1.SetParent(GetDlgItem(IDC_TABTEST));
m_para2.SetParent(GetDlgItem(IDC_TABTEST));
m_result.SetParent(GetDlgItem(IDC_TABTEST));

2://獲得IDC_TABTEST客戶區(qū)大小
CRect rs;
m_tab.GetClientRect(&rs);

//調(diào)整子對(duì)話框在父窗口中的位置
rs.top+=1;
rs.bottom-=60;
rs.left+=1;
rs.right-=2;

這里一點(diǎn)要注意:調(diào)整距離,否則,子對(duì)話框?qū)⒏采wTab control控件,將不能顯示
將出現(xiàn)這中情況:



//調(diào)整子對(duì)話框在父窗口中的位置 如下
 rs.top+=20;
 rs.bottom-=20;
 rs.left+=20;
 rs.right-=20;



哈哈,注意啊。

相關(guān)文章

  • C++?中的?JSON?序列化和反序列化及結(jié)構(gòu)體與枚舉類型的處理方法

    C++?中的?JSON?序列化和反序列化及結(jié)構(gòu)體與枚舉類型的處理方法

    在?C++?編程中,處理?JSON?數(shù)據(jù)是一項(xiàng)常見任務(wù),特別是在需要與其他系統(tǒng)或前端進(jìn)行數(shù)據(jù)交換時(shí),本文將詳細(xì)介紹如何使用?nlohmann::json?庫對(duì)結(jié)構(gòu)體和枚舉類型進(jìn)行序列化和反序列化,感興趣的朋友一起看看吧
    2024-11-11
  • C語言大小端模式、判斷大小端、大小端轉(zhuǎn)換方法詳解

    C語言大小端模式、判斷大小端、大小端轉(zhuǎn)換方法詳解

    這篇文章主要介紹了C語言大小端模式、判斷大小端、大小端轉(zhuǎn)換的相關(guān)資料,大端和小端是數(shù)據(jù)在內(nèi)存中的存儲(chǔ)方式,大端模式下高字節(jié)存于低地址,小端模式則相反,大小端問題由數(shù)據(jù)類型多字節(jié)存儲(chǔ)引起,不同選擇形成不同存儲(chǔ)模式,需要的朋友可以參考下
    2024-10-10
  • C++中的構(gòu)造函數(shù)詳解

    C++中的構(gòu)造函數(shù)詳解

    這篇文章主要介紹了C++ 中構(gòu)造函數(shù)的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C語言實(shí)現(xiàn)計(jì)算器的兩種方法

    C語言實(shí)現(xiàn)計(jì)算器的兩種方法

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)計(jì)算器的兩種方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C語言數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)字符串分割的實(shí)例

    C語言數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)字符串分割的實(shí)例

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)字符串分割的實(shí)例的相關(guān)資料,希望通過本文能幫助到大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • C語言聯(lián)合體類型的實(shí)現(xiàn)

    C語言聯(lián)合體類型的實(shí)現(xiàn)

    聯(lián)合體也是一種構(gòu)造數(shù)據(jù)類型,和結(jié)構(gòu)體類型一樣,它也是由各種不同類型的數(shù)據(jù)組成,本文主要介紹了C語言聯(lián)合體類型的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • C++靜態(tài)變量,常量的存儲(chǔ)位置你真的了解嗎

    C++靜態(tài)變量,常量的存儲(chǔ)位置你真的了解嗎

    這篇文章主要介紹了C++中靜態(tài)變量與常量的存儲(chǔ)位置的相關(guān)資料,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-08-08
  • C++設(shè)計(jì)模式之模板方法模式(TemplateMethod)

    C++設(shè)計(jì)模式之模板方法模式(TemplateMethod)

    這篇文章主要為大家詳細(xì)介紹了C++設(shè)計(jì)模式之模板方法模式TemplateMethod,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 淺談C++中各種不同意義的new和delete的使用

    淺談C++中各種不同意義的new和delete的使用

    本文主要介紹了淺談C++中各種不同意義的new和delete的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 一文帶你探索C++中類型轉(zhuǎn)換的奧秘

    一文帶你探索C++中類型轉(zhuǎn)換的奧秘

    C++?提供了四種類型轉(zhuǎn)換方式,幫助我們?cè)诓煌瑪?shù)據(jù)類型之間進(jìn)行有效的數(shù)據(jù)傳遞和操作,這些類型轉(zhuǎn)換方式在不同的場(chǎng)景下有各自的優(yōu)勢(shì)和適用性,下面我們就來深入了解一下吧
    2023-10-10

最新評(píng)論

马公市| 盐边县| 六枝特区| 长武县| 临颍县| 木兰县| 祁东县| 定结县| 吉木乃县| 江川县| 江川县| 海门市| 沙河市| 安福县| 萝北县| 大姚县| 清丰县| 阿拉善右旗| 新蔡县| 霍林郭勒市| 五家渠市| 玉屏| 施秉县| 青龙| 临漳县| 梨树县| 白山市| 南涧| 筠连县| 英山县| 襄汾县| 乌苏市| 肃宁县| 辽阳市| 丹东市| 海南省| 屯昌县| 德清县| 徐汇区| 镇沅| 桦川县|