青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

VC++6.0中使用復選框和單選鈕

單選鈕用來表示一系列的互斥選項,這些互斥項常常被分成若干個組,每組僅允許用戶選擇一個選項;復選框與單選按鈕相象,不同之處是復選框代表多重選擇,用戶可以選擇一個或多個選項。

  對話框編輯器中各組控件的對齊

  按下Ctrl鍵并單擊要對齊的各個控件,同時選中。最后選中的控件是對齊的基準,仔細觀察,它周圍的8個小方框是實心的,而其它被選控件周圍的小方框是空心的。

  在Layout菜單中選擇Make Same Size的Both,可以統一控件尺寸,所選控件尺寸與基準控件相同。在Layout菜單中選擇Align的Left,可以使所有被選控件的左邊與基準控件對齊。選擇Layout菜單中Align的Space Evenly的Down,可以使被選控件垂直間距相等。

  單選按鈕和復選框的使用
  為了方便說明,我們假定創建了基于對話框的MFC應用程序,工程名為RadioAndCheckButton。對話框資源加入兩個組框 ,第一個組框‘性別’,內有‘男’,‘女’兩個單選鈕;第二個組框是‘愛好’,內有‘足球’‘排球’‘藍球’三個復選框,如下表:

控件類型 ID 標題(Caption) 其它屬性
組框 缺省 性別 缺省
單選鈕 IDC_SEX1 Group
單選鈕 IDC_SEX2 缺省
組框 缺省 愛好 缺省
復選框 IDC_HOBBY1 足球 缺省
復選框 IDC_HOBBY2 排球 缺省
復選框 IDC_HOBBY3 藍球 缺省

  設置控件的Tab Order

  單擊Layout菜單下的Tab Order命令,設置控件的TAB鍵順序(Tab Order),保證單選鈕的Tab Order連續。

  以Tab Order為序,從Group屬性為真的控件開始(包括該控件),到下一個Group屬性為真的控件結束(不包括該控件),所有的這些控件將組成一個組。對于單選鈕,同一組內同時只能有一個處于被選中狀態。對于由資源編輯器生成的單選按鈕控件,在默認情況由Windows自動處理同組控件之間的互斥關系。

  具體使用單選鈕和復選框

  1、調用 CButton的成員函數SetCheck設置單選鈕和復選框的選中狀態。該成員函數帶有一個類型為整形的參數,該參數為0表示清除選中按鈕的選中狀態,參數為1表示設置選中按鈕的選中狀態。參數為2表示把三態復選框設為不確定狀態。

  復選框的Tristate屬性:創建三態復選框。除了處于“選中”和“不選中”狀態外,三態復選框還可以處于變灰狀態。通常,復選框的變灰狀態表示其選中狀態不確定。在很多軟件的安裝程序中,變灰往往表示僅選中該組件的一部分。

  注意,如果我們在程序中調用SetCheck設置同一組中某一單選鈕為選中狀態,并不意味著同時清除同一組中其它單選鈕的選中狀態。否則,將導致同一組中的兩個按鈕同時處于選中狀態。這是應該避免的。因此,如果我們通過代碼改變了單選鈕的選中狀態,一定要記得同時清除同組的其它單選鈕的選中狀態。

  2、調用 CButton的成員函數GetCheck返回單選鈕的選中狀態。該函數的函數原型是

int GetCheck( ) const;

  返回值可以是0、1、2,分別代表按鈕處于未選中狀態、選中狀態或中間狀態(對三態復選框而言)。

  3、調用類CWnd的成員函數GetCheckedRadioButton返回同一組單選鈕中哪一個被選中。該成員函數原型如下:

int GetCheckedRadioButton(int nIDFirstButton,int nIDLastButton);

  第一個參數nIDFirstButton是同一組中的第一個單選鈕控件的ID,nIDLastButton是同一組中最后一個單選鈕控件的ID。成員函數GetCheckedRadioButton返回指定組中所選中的單選鈕的ID,如果沒有按扭被選中,則返回0。

  注意,若干個單選鈕是否屬于同一組是以其Tab順序來排定的,而GetCheckedRadioButton函數是以ID順序來檢查按鈕的選定狀態的。因此,如果傳遞給函數GetCheckedRadioButton的第一個參數的值大于第二個參數的值時,其返回值總是為0,而事實上由這兩個參數指定的單選鈕的Tab順序可能恰恰相反。因此,一般情況下我們應該盡量保證同一組單選鈕的資源ID是連續遞增的。通常這些資源ID是在頭文件Resource.h中定義的。如果你同一組的單選鈕不是一次創建的,那么它們的資源ID可能不是連續遞增的,甚至可能是相反的。我們可以手動的修改資源頭文件中的宏定義,以保證GetCheckedRadioButton函數得到正確的結果。

  例:
UINT nSex=GetCheckedRadioButton(IDC_SEX1,IDC_SEX2); Switch(nSex) { Case IDC_SEX1: ; ……

  4、使用ClassWizard為單選鈕或復選框添加變量,來使用單選鈕或復選框

  一般,一組單選按鈕的第一個屬性選中Group,注意,只有選中Group屬性的單選鈕的ID 才能在ClassWizard中添加變量。

  在對話框類給一組單選鈕加入一個成員變量,單選鈕(組中的第一個按鈕)的數據變量類型是int,0表示選擇了組中的第一個單選鈕,1表示選擇了第二個,-1表示沒有一個被選中。例如:給單選鈕IDC_SEX1添加int型變量m_nSex,并在執行文件中加入如下代碼:

……
UpdateData(TRUE);
if(m_nSex==0) //選中‘男’
;
else if(m_nSex==1) //選中‘女’
;
else
;
……

  復選框的數據變量類型是BOOL,TRUE表示選中,FALSE表示未選中。例如:給復選框IDC_HOBBY1添加BOOL型變量m_hobby1,并在執行文件中加入如下代碼:

……
m_hobby1=TRUE;
UpdateData(FALSE);
……

  5、使用消息映射宏ON_CONTROL_RANGE

  單選鈕和復選框都可以響應BN_CLICKED消息,如果一組中有多個單選鈕,分別創建消息處理函數就比較麻煩了,利用MFC的消息映射宏ON_CONTROL_RANGE可以避免這種麻煩,該映射宏把多個ID連續的控件發出的消息映射到同一個處理函數上,這樣,我們只要編寫一個消息處理函數就可以對一組單選鈕的BN_CLICKED消息作出響應,ClassWizard不支持該宏,必須手工創建。

  ON_CONTROL_RANGE消息映射宏的第一個參數是控件消息碼,第二和第三個參數分別指明了一組連續的控件ID中的頭一個和最后一個ID,最后一個參數是消息處理函數名。注意,起始、 終止ID號必須是連續的,如果不能確定該組控件的ID是否是連續,請用View->Resource Symbols…命令檢查控件的ID值,如果發現兩個ID是不連續的,讀者可以改變對ID的定義值使之連續,但要注意改動后的值不要與別的ID值發生沖突。

  在BEGIN_MESSAGE_MAP 和 END_MESSAGE_MAP之間 //}}AFX_MSG_MAP之后加入

ON_CONTROL_RANGE(BN_CLICKED,IDC_SEX1,IDC_SEX2,OnSexClicked)

  然后在對話框類的頭文件的AFX_MSG 塊中聲明消息處理函數,

……
//{{AFX_MSG(CMyView)
……
//}}AFX_MSG
 afx_msg void OnSexClicked (UINT nCmdID); 
DECLARE_MESSAGE_MAP()
……
  最后,在對話框類所在CPP文件的最后插入消息處理函數,如下所示:
CRadioAndCheckButtonDialog:: OnSexClicked,
 void CRadioAndCheckButtonDialog:: OnSexClicked (UINT nCmdID)  
 { 
……
switch(nID)
{
case IDC_SEX1:
AfxMessageBox("IDC_SEX1");
break;
case IDC_SEX2:
AfxMessageBox("IDC_SEX2");
break;
……
}        
  6、使用IsDlgButtonChecked 函數判斷單選鈕或復選框是否被選中

  CWnd::IsDlgButtonChecked函數,用來判斷單選按鈕或檢查框是否被選擇,該函數的聲明為
UINT IsDlgButtonChecked(int nIDButton) const;

  參數nIDButton為按鈕的ID。若按鈕被選擇,則函數返回1,否則返回0,若按鈕處于不確定狀態,則返回值為2。

……
 if(IsDlgButtonChecked(IDC_SEX1)) 
……

  以上是使用單選鈕和復選框最常用的幾種方法。

posted on 2008-04-12 19:23 wrh 閱讀(678) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

統計

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国语自产在线不卡| 亚洲最新视频在线| 亚洲免费av电影| 黄色成人在线网址| 在线成人激情| 亚洲日本在线观看| 夜夜爽av福利精品导航| 一区二区三区欧美亚洲| 国产精品99久久不卡二区| 亚洲欧美国产一区二区三区| 午夜精品一区二区三区四区| 国内外成人在线视频| 在线观看91精品国产麻豆| 亚洲精品欧美日韩| 亚洲女同精品视频| 免费日韩精品中文字幕视频在线| 欧美激情aⅴ一区二区三区| 亚洲精品在线视频| 亚洲欧美制服另类日韩| 久久中文欧美| 欧美亚州一区二区三区| 韩国av一区| 在线中文字幕不卡| 久久午夜精品一区二区| 国产夜色精品一区二区av| 亚洲国产日韩精品| 亚洲国产精品久久久久| 亚洲一二区在线| 久久久爽爽爽美女图片| 亚洲人精品午夜| 久久不射网站| 欧美日韩系列| 精东粉嫩av免费一区二区三区| 91久久国产综合久久91精品网站| 亚洲天天影视| 欧美风情在线观看| 午夜国产精品视频免费体验区| 欧美freesex8一10精品| 国产欧美高清| 亚洲尤物精选| 亚洲精品一二区| 久久一二三四| 韩日欧美一区| 久久精品国产精品亚洲综合| 亚洲免费电影在线观看| 久久婷婷人人澡人人喊人人爽| 欧美午夜精品久久久久免费视| 亚洲二区三区四区| 久久久高清一区二区三区| 一区二区三区.www| 亚洲一区免费网站| 亚洲国产精品传媒在线观看| 欧美成人国产| 欧美中文字幕在线播放| 欧美一区二区三区视频在线观看| 欧美日韩国产综合新一区| 在线国产精品一区| 国产一区二区剧情av在线| 麻豆乱码国产一区二区三区| 老司机精品久久| 亚洲大胆美女视频| 亚洲精品免费电影| 国产精品日韩精品| 99精品国产热久久91蜜凸| 小嫩嫩精品导航| 欧美黄色成人网| 国产精品二区在线观看| 欧美三级第一页| 久久久99国产精品免费| 亚洲午夜在线观看视频在线| 国产精品久久午夜夜伦鲁鲁| 欧美**人妖| 国产精品sm| 免费一级欧美在线大片| 欧美日韩一区二区三区在线 | 亚洲精品黄网在线观看| 国产欧美精品xxxx另类| 亚洲美女在线国产| 亚洲综合社区| 美女精品视频一区| 久久综合亚州| 尤物yw午夜国产精品视频明星| 亚洲欧美日韩在线播放| 99re6热在线精品视频播放速度| 亚洲欧美中文日韩在线| 久久夜色撩人精品| 久久九九精品| 欧美中文字幕久久| 老司机午夜免费精品视频| 亚洲欧美春色| 在线看片第一页欧美| 久久久中精品2020中文| 久久久综合视频| 午夜精品福利一区二区三区av | 欧美一区91| 亚洲视频免费在线| 亚洲精品一区二区三区婷婷月| 久久gogo国模啪啪人体图| 性欧美xxxx视频在线观看| 在线观看av不卡| 激情欧美一区二区| 噜噜噜久久亚洲精品国产品小说| 亚洲人午夜精品免费| 午夜视频一区二区| 日韩视频二区| 在线观看日韩专区| 欧美视频一区二区三区…| 久久精品论坛| 午夜精品一区二区三区在线视 | 欧美激情亚洲一区| 亚洲欧美日韩中文在线制服| 亚洲国产精品电影| 免费日韩av| 91久久久久| 性欧美videos另类喷潮| 香蕉久久久久久久av网站| 国产精品二区影院| 99精品99久久久久久宅男| 开心色5月久久精品| 欧美久久久久免费| 欧美精品国产一区| 国产精品wwwwww| 国产精品大片免费观看| 国产女主播在线一区二区| 亚洲国产成人在线视频| 国产亚洲精品7777| 一区二区三区三区在线| 鲁大师成人一区二区三区| 日韩午夜免费视频| 亚洲一区黄色| 久久九九免费视频| 欧美大学生性色视频| 亚洲伦理久久| 久久av最新网址| 欧美国产日本高清在线| 国产精品久久久久一区二区三区| 国产精品三级久久久久久电影| 国产一区二区三区成人欧美日韩在线观看 | 欧美视频手机在线| 国产亚洲一级高清| 亚洲一区二区三区精品在线 | 在线亚洲免费| 亚洲一区在线播放| 日韩亚洲欧美精品| 免播放器亚洲一区| 美女视频黄a大片欧美| 国产麻豆精品久久一二三| 久久国产视频网| 亚洲午夜久久久久久尤物| 美女成人午夜| 欧美大片一区二区三区| 国内成人自拍视频| 久久久国产午夜精品| 欧美肥婆bbw| 亚洲午夜在线观看| 欧美色精品天天在线观看视频 | 欧美日韩精品一二三区| 欧美激情精品久久久久久蜜臀 | 久久精品免费观看| 亚洲欧美日韩精品综合在线观看 | 欧美成人午夜激情视频| 亚洲第一中文字幕| 国产日韩欧美另类| 在线一区欧美| 午夜国产不卡在线观看视频| 亚洲激情偷拍| 亚洲国产精品女人久久久| 欧美电影免费观看高清| 国产精品区二区三区日本| 亚洲欧美区自拍先锋| 亚洲一区欧美一区| 国产视频一区免费看| 亚洲欧美日韩视频一区| 黄色av一区| 久久电影一区| 蜜桃久久精品乱码一区二区| 久久超碰97人人做人人爱| 黄色在线一区| 国产综合婷婷| 一区二区三区高清在线观看| 亚洲国产婷婷香蕉久久久久久99 | 欧美在线影院在线视频| 99re66热这里只有精品3直播| 亚洲免费综合| 亚洲欧美区自拍先锋| 亚洲欧美成人一区二区三区| 中文精品在线| 久久成人综合网| 亚洲人www| 久久一区中文字幕| 国产精品夫妻自拍| 伊人久久大香线蕉综合热线| 欧美一区二区三区啪啪| 猛男gaygay欧美视频| 欧美综合第一页| 午夜一区二区三区在线观看| 国产视频精品va久久久久久| 欧美一区二区在线| 欧美高清视频一区二区三区在线观看| 欧美日韩国产在线|