a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

VC控件技巧匯總

2020-02-24 14:31:21
字體:
供稿:網(wǎng)友

許多人在學習VC的時候都不知道如何隱藏和顯示控件,也不了解控件的使用方法,接下來就是武林小編為大家介紹的VC控件技巧匯總,感興趣的朋友們一起去了解了解吧。

本文搜集匯總了VC小技巧的控件技巧,對于進行VC開發(fā)來說有一定的借鑒價值,具體如下:

1.如何隱藏和顯示控件

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

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

例2:

CWnd *pWnd;pWnd = GetDlgItem( IDC_EDIT1 ); //獲取控件指針,IDC_EDIT為控件ID號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);

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

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

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

nFlags常用取值:

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

例:

CWnd *pWnd;pWnd = GetDlgItem( IDC_BUTTON1 );  //獲取控件指針,IDC_BUTTON1為控件ID號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 ); //把編輯控件的大小設為(100,80),位置不變pWnd = GetDlgItem( IDC_EDIT1 );pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ); //編輯控件的大小和位置都改變

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

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

(1)對單選按鈕進行分組:

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

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

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

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

當控件變量值為0時,它對應組的第一個單選按鈕處于選中狀態(tài)。

(4)設置默認按鈕:

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

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

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

當單擊旋轉(zhuǎn)控件上的按鈕時,相應的編輯控件值會增大或減小。其設置的一般步驟為:

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

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

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

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

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

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

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

5.UpdateData()

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

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

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

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

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

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

這篇文章主要介紹了VC控件技巧匯總,看完后你都學會的了,對于VC的開發(fā)是很有借鑒價值的。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 欧美日韩国产精品久久久久 | 国产一区二区三区免费 | 伊人狠狠 | 日韩在线一区二区三区 | 日韩视频中文字幕 | 久久69国产一区二区蜜臀 | 午夜久久网站 | 成人黄大片视频在线观看 | 日韩一区二区精品 | 精品一区二区av | 国产不卡二区 | 在线第一页 | av在线一区二区 | 亚洲一区成人 | 日日日操| 日韩黄色小视频 | 本道综合精品 | 在线国产一区二区 | 色吊丝在线永久观看最新版本 | 性色av一区二区三区免费看开蚌 | 亚洲福利一区 | 日韩精品在线观看视频 | 国产成人午夜 | 国产激情网址 | 日韩av一区二区三区在线观看 | 亚洲午夜视频在线观看 | 国产丝袜在线 | 日韩在线h| 欧美色综合 | 亚洲三级视频 | 一区二区中文字幕在线观看 | 欧美高清不卡 | 精品久久久久国产免费 | 蜜臀av在线播放一区二区三区 | 成人在线观 | 久久久久久久久久久久国产精品 | 日韩欧美国产视频 | 最新日韩一区 | 99在线精品视频 | 久久精品一 | 精品无人乱码一区二区三区 |