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

VC小技巧匯總之控件技巧

 更新時(shí)間:2014年07月21日 11:51:14   投稿:shichen2014  
這篇文章主要介紹了VC小技巧匯總之控件技巧,對(duì)于VC的開(kāi)發(fā)很有借鑒價(jià)值,需要的朋友可以參考下

本文搜集匯總了VC小技巧的控件技巧,對(duì)于進(jìn)行VC開(kāi)發(fā)來(lái)說(shuō)有一定的借鑒價(jià)值,具體如下:

1.如何隱藏和顯示控件

用CWnd類的函數(shù)BOOL ShowWindow(int nCmdShow)可以隱藏或顯示一個(gè)控件。
例1:

CWnd *pWnd;
pWnd = GetDlgItem( IDC_EDIT1 ); //獲取控件指針,IDC_EDIT為控件ID號(hào)
pWnd->ShowWindow( SW_HIDE );   //隱藏控件

例2:

CWnd *pWnd;
pWnd = GetDlgItem( IDC_EDIT1 ); //獲取控件指針,IDC_EDIT為控件ID號(hào)
pWnd->ShowWindow( SW_SHOW );   //顯示控件

2.按鈕的使能與禁止

用ClassWizard的Member Variables為按鈕定義變量,如:m_Button1;

m_Button1.EnableWindow(true);  //使按鈕處于允許狀態(tài)
m_Button1.EnableWindow(false);  //使按鈕被禁止,并變灰顯示

3.改變控件的大小和位置

用CWnd類的函數(shù)MoveWindow()或SetWindowPos()可以改變控件的大小和位置。

void MoveWindow(int x,int y,int nWidth,int nHeight);
void MoveWindow(LPCRECT lpRect);

第一種用法需給出控件新的坐標(biāo)和寬度、高度;
第二種用法給出存放位置的CRect對(duì)象;
例:

CWnd *pWnd;
pWnd = GetDlgItem( IDC_EDIT1 );  //獲取控件指針,IDC_EDIT1為控件ID號(hào)
pWnd->MoveWindow( CRect(0,0,100,100) ); //在窗口左上角顯示一個(gè)寬100、高100的編輯控件
SetWindowPos()函數(shù)使用更靈活,多用于只修改控件位置而大小不變或只修改大小而位置不變的情況:
BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);

第一個(gè)參數(shù)一般設(shè)為NULL;
x、y控件位置;cx、cy控件寬度和高度;

nFlags常用取值:

SWP_NOZORDER:忽略第一個(gè)參數(shù);
SWP_NOMOVE:忽略x、y,維持位置不變;
SWP_NOSIZE:忽略cx、cy,維持大小不變;

例:

CWnd *pWnd;
pWnd = GetDlgItem( IDC_BUTTON1 );  //獲取控件指針,IDC_BUTTON1為控件ID號(hào)
pWnd->SetWindowPos( NULL,50,80,0,0,SWP_NOZORDER | SWP_NOSIZE ); //把按鈕移到窗口的(50,80)處
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER | SWP_NOMOVE ); //把編輯控件的大小設(shè)為(100,80),位置不變
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ); //編輯控件的大小和位置都改變

以上方法也適用于各種窗口。

4.單選按鈕控件(Radio Button)的使用

(1)對(duì)單選按鈕進(jìn)行分組:

每組的第一個(gè)單選按鈕設(shè)置屬性:Group,Tabstop,Auto;其余按鈕設(shè)置屬性Tabstop,Auto。
如:
Radio1、Radio2、Radio3為一組,Radio4、Radio5為一組
設(shè)定Radio1屬性:Group,Tabstop,Auto
設(shè)定Radio2屬性:Tabstop,Auto
設(shè)定Radio3屬性:Tabstop,Auto
設(shè)定Radio4屬性:Group,Tabstop,Auto
設(shè)定Radio5屬性:Tabstop,Auto

(2)用ClassWizard為單選控件定義變量,每組只能定義一個(gè)。如:m_Radio1、m_Radio4。

(3)用ClassWizard生成各單選按鈕的單擊消息函數(shù),并加入內(nèi)容:

void CWEditView::OnRadio1() 
{
  m_Radio1 = 0;  //第一個(gè)單選按鈕被選中
}
void CWEditView::OnRadio2() 
{
  m_Radio1 = 1;  //第二個(gè)單選按鈕被選中
}
void CWEditView::OnRadio3() 
{
  m_Radio1 = 2;  //第三個(gè)單選按鈕被選中
}
void CWEditView::OnRadio4() 
{
  m_Radio4 = 0;  //第四個(gè)單選按鈕被選中
}
void CWEditView::OnRadio5() 
{
  m_Radio4 = 1;  //第五個(gè)單選按鈕被選中
}

當(dāng)控件變量值為0時(shí),它對(duì)應(yīng)組的第一個(gè)單選按鈕處于選中狀態(tài)。

(4)設(shè)置默認(rèn)按鈕:

在定義控件變量時(shí),ClassWizard在構(gòu)造函數(shù)中會(huì)把變量初值設(shè)為-1,只需把它改為其它值即可。
如:

//{{AFX_DATA_INIT(CWEditView)
m_Ridio1 = 0;  //初始時(shí)第一個(gè)單選按鈕被選中
m_Ridio4 = 0;  //初始時(shí)第四個(gè)單選按鈕被選中
//}}AFX_DATA_INIT

4.旋轉(zhuǎn)控件(Spin)的使用

當(dāng)單擊旋轉(zhuǎn)控件上的按鈕時(shí),相應(yīng)的編輯控件值會(huì)增大或減小。其設(shè)置的一般步驟為:

(1)在對(duì)話框中放入一個(gè)Spin控件和一個(gè)編輯控件作為Spin控件的伙伴窗口

設(shè)置Spin控件屬性:Auto buddy、Set buddy integer、Arrow keys
設(shè)置文本控件屬性:Number

(2)用ClassWizard為Spin控件定義變量m_Spin,為編輯控件定義變量m_Edit,定義時(shí)注意要把m_Edit設(shè)置為int型。

(3)在對(duì)話框的OnInitDialog()函數(shù)中加入語(yǔ)句:

BOOL CMyDlg::OnInitDialog() 
{
  CDialog::OnInitDialog();

  m_Spin.SetBuddy( GetDlgItem( IDC_EDIT1 ) ); //設(shè)置編輯控件為Spin控件的伙伴窗口
  m_Spin.SetRange( 0, 10 );  //設(shè)置數(shù)據(jù)范圍為0-10
  return TRUE;
}

(4)用ClassWizard為編輯控件添加EN_CHANGE消息處理函數(shù),再加入語(yǔ)句:

void CMyDlg::OnChangeEdit1() 
{
  m_Edit = m_Spin.GetPos();  //獲取Spin控件當(dāng)前值
}

5.UpdateData()

對(duì)于可以接收數(shù)據(jù)的控件,如編輯控件來(lái)說(shuō),UpdateData()函數(shù)至關(guān)重要。當(dāng)控件內(nèi)容發(fā)生變化時(shí),對(duì)應(yīng)的控件變量的值并沒(méi)有跟著變化,同樣,當(dāng)控件變量值變化時(shí),控件內(nèi)容也不會(huì)跟著變。
UpdateData()函數(shù)就是解決這個(gè)問(wèn)題的。
UpdateData(true);    把控件內(nèi)容裝入控件變量
UpdateData(false);   用控件變量的值更新控件
如:有編輯控件IDC_EDIT1,對(duì)應(yīng)的變量為字符串m_Edit1,

(1)修改變量值并顯示在控件中:

m_Edit1 = _T("結(jié)果為50");
UpdateData(false);

(2)讀取控件的值到變量中:

用ClassWizard為IDC_EDIT1添加EN_CHANGE消息處理函數(shù),這個(gè)函數(shù)在編輯控件內(nèi)容發(fā)生變化時(shí)執(zhí)行。

void CEditView::OnChangeEdit1()
{
  UpdateData(true);  //更新變量值
}

相關(guān)文章

  • C++學(xué)習(xí)小結(jié)之語(yǔ)句

    C++學(xué)習(xí)小結(jié)之語(yǔ)句

    本文給大家匯總介紹了下C++中比較基礎(chǔ)的知識(shí)--語(yǔ)句,常用的語(yǔ)句都有詳細(xì)介紹和附上了相關(guān)示例,十分實(shí)用,有需要的小伙伴可以參考下
    2015-07-07
  • C語(yǔ)言超詳細(xì)講解函數(shù)指針的運(yùn)用

    C語(yǔ)言超詳細(xì)講解函數(shù)指針的運(yùn)用

    函數(shù)指針是一個(gè)指針變量,它可以存儲(chǔ)函數(shù)的地址,然后使用函數(shù)指針,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言進(jìn)階教程之函數(shù)指針的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • C++實(shí)現(xiàn)單例模式的方法

    C++實(shí)現(xiàn)單例模式的方法

    這篇文章主要為大家介紹了C++實(shí)現(xiàn)單例模式的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • 在Visual Studio Code中使用CSSComb格式化CSS文件的教程

    在Visual Studio Code中使用CSSComb格式化CSS文件的教程

    這篇文章主要介紹了在Visual Studio Code中使用CSSComb格式化CSS文件,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • c++ decltype關(guān)鍵字的用法

    c++ decltype關(guān)鍵字的用法

    這篇文章主要介紹了c++ decltype關(guān)鍵字的用法,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-10-10
  • C++-操作符重載、并實(shí)現(xiàn)復(fù)數(shù)類詳解

    C++-操作符重載、并實(shí)現(xiàn)復(fù)數(shù)類詳解

    這篇文章主要介紹了C++-操作符重載、并實(shí)現(xiàn)復(fù)數(shù)類,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 詳解C語(yǔ)言常用的一些轉(zhuǎn)換工具函數(shù)

    詳解C語(yǔ)言常用的一些轉(zhuǎn)換工具函數(shù)

    這篇文章主要介紹了C語(yǔ)言常用的一些轉(zhuǎn)換工具函數(shù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • C語(yǔ)言 sizeof 函數(shù)詳情

    C語(yǔ)言 sizeof 函數(shù)詳情

    這篇文章主要介紹了C語(yǔ)言 sizeof 函數(shù),在 C 語(yǔ)言中,char 字符串也是一種非常重要的數(shù)據(jù)類型,我們除了使用 sizeof 函數(shù)獲取字符串長(zhǎng)度之外,使用 sizeof 函數(shù)同樣也可以完成字符串長(zhǎng)度的獲取,下面文章內(nèi)容具體描述該內(nèi)容,需要的朋友可以參考以下
    2021-10-10
  • C++的array和&array有什么區(qū)別

    C++的array和&array有什么區(qū)別

    本文主要介紹了C++的array和&array有什么區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • C語(yǔ)言漢諾塔的簡(jiǎn)單了解

    C語(yǔ)言漢諾塔的簡(jiǎn)單了解

    這篇文章主要給大家介紹了關(guān)于C語(yǔ)言漢諾塔的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評(píng)論

永仁县| 宁德市| 美姑县| 松滋市| 大宁县| 昭通市| 甘泉县| 阳山县| 永和县| 宿州市| 饶平县| 江北区| 腾冲县| 瓮安县| 和硕县| 肇东市| 襄城县| 都江堰市| 桑植县| 玛曲县| 广灵县| 江津市| 株洲市| 新邵县| 丹棱县| 龙里县| 祁东县| 桦南县| 平邑县| 宝兴县| 沅江市| 安图县| 吉林市| 鄂托克前旗| 上栗县| 连云港市| 栾川县| 常州市| 金华市| 大方县| 平舆县|