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

VC++6.0中使用復(fù)選框和單選鈕

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

  對(duì)話框編輯器中各組控件的對(duì)齊

  按下Ctrl鍵并單擊要對(duì)齊的各個(gè)控件,同時(shí)選中。最后選中的控件是對(duì)齊的基準(zhǔn),仔細(xì)觀察,它周圍的8個(gè)小方框是實(shí)心的,而其它被選控件周圍的小方框是空心的。

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

  單選按鈕和復(fù)選框的使用
  為了方便說(shuō)明,我們假定創(chuàng)建了基于對(duì)話框的MFC應(yīng)用程序,工程名為RadioAndCheckButton。對(duì)話框資源加入兩個(gè)組框 ,第一個(gè)組框‘性別’,內(nèi)有‘男’,‘女’兩個(gè)單選鈕;第二個(gè)組框是‘愛(ài)好’,內(nèi)有‘足球’‘排球’‘藍(lán)球’三個(gè)復(fù)選框,如下表:

控件類型 ID 標(biāo)題(Caption) 其它屬性
組框 缺省 性別 缺省
單選鈕 IDC_SEX1 Group
單選鈕 IDC_SEX2 缺省
組框 缺省 愛(ài)好 缺省
復(fù)選框 IDC_HOBBY1 足球 缺省
復(fù)選框 IDC_HOBBY2 排球 缺省
復(fù)選框 IDC_HOBBY3 藍(lán)球 缺省

  設(shè)置控件的Tab Order

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

  以Tab Order為序,從Group屬性為真的控件開(kāi)始(包括該控件),到下一個(gè)Group屬性為真的控件結(jié)束(不包括該控件),所有的這些控件將組成一個(gè)組。對(duì)于單選鈕,同一組內(nèi)同時(shí)只能有一個(gè)處于被選中狀態(tài)。對(duì)于由資源編輯器生成的單選按鈕控件,在默認(rèn)情況由Windows自動(dòng)處理同組控件之間的互斥關(guān)系。

  具體使用單選鈕和復(fù)選框

  1、調(diào)用 CButton的成員函數(shù)SetCheck設(shè)置單選鈕和復(fù)選框的選中狀態(tài)。該成員函數(shù)帶有一個(gè)類型為整形的參數(shù),該參數(shù)為0表示清除選中按鈕的選中狀態(tài),參數(shù)為1表示設(shè)置選中按鈕的選中狀態(tài)。參數(shù)為2表示把三態(tài)復(fù)選框設(shè)為不確定狀態(tài)。

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

  注意,如果我們?cè)诔绦蛑姓{(diào)用SetCheck設(shè)置同一組中某一單選鈕為選中狀態(tài),并不意味著同時(shí)清除同一組中其它單選鈕的選中狀態(tài)。否則,將導(dǎo)致同一組中的兩個(gè)按鈕同時(shí)處于選中狀態(tài)。這是應(yīng)該避免的。因此,如果我們通過(guò)代碼改變了單選鈕的選中狀態(tài),一定要記得同時(shí)清除同組的其它單選鈕的選中狀態(tài)。

  2、調(diào)用 CButton的成員函數(shù)GetCheck返回單選鈕的選中狀態(tài)。該函數(shù)的函數(shù)原型是

int GetCheck( ) const;

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

  3、調(diào)用類CWnd的成員函數(shù)GetCheckedRadioButton返回同一組單選鈕中哪一個(gè)被選中。該成員函數(shù)原型如下:

int GetCheckedRadioButton(int nIDFirstButton,int nIDLastButton);

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

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

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

  4、使用ClassWizard為單選鈕或復(fù)選框添加變量,來(lái)使用單選鈕或復(fù)選框

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

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

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

  復(fù)選框的數(shù)據(jù)變量類型是BOOL,TRUE表示選中,F(xiàn)ALSE表示未選中。例如:給復(fù)選框IDC_HOBBY1添加BOOL型變量m_hobby1,并在執(zhí)行文件中加入如下代碼:

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

  5、使用消息映射宏ON_CONTROL_RANGE

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

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

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

ON_CONTROL_RANGE(BN_CLICKED,IDC_SEX1,IDC_SEX2,OnSexClicked)

  然后在對(duì)話框類的頭文件的AFX_MSG 塊中聲明消息處理函數(shù),

……
//{{AFX_MSG(CMyView)
……
//}}AFX_MSG
 afx_msg void OnSexClicked (UINT nCmdID); 
DECLARE_MESSAGE_MAP()
……
  最后,在對(duì)話框類所在CPP文件的最后插入消息處理函數(shù),如下所示:
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 函數(shù)判斷單選鈕或復(fù)選框是否被選中

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

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

……
 if(IsDlgButtonChecked(IDC_SEX1)) 
……

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

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


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


導(dǎo)航

<2008年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

統(tǒng)計(jì)

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美人与禽猛交乱配视频| 国产亚洲福利社区一区| 欧美另类在线播放| 国产精品一级久久久| 亚洲激情综合| 欧美在线看片a免费观看| 亚洲日本中文字幕| 久久亚洲精品伦理| 狠狠久久亚洲欧美专区| 欧美一区深夜视频| 亚洲一区精彩视频| 国产精品免费福利| 性欧美暴力猛交另类hd| 亚洲综合色视频| 国产精品自拍网站| 久久精品女人的天堂av| 性欧美超级视频| 国产一区二区主播在线| 久久久精品视频成人| 亚洲免费在线| 国产日韩一区二区三区在线播放| 亚洲在线视频免费观看| 99伊人成综合| 国产精品成人一区二区三区夜夜夜 | 99热这里只有精品8| 欧美肥婆在线| 中文有码久久| 亚洲图片自拍偷拍| 国产亚洲精品久久久久婷婷瑜伽| 欧美亚洲一区二区在线观看| 亚洲尤物视频网| 亚洲在线观看视频网站| 亚洲激情图片小说视频| 欧美华人在线视频| 日韩亚洲视频在线| 99在线精品免费视频九九视| 国产精品视频免费在线观看| 久久精品人人爽| 久久影院亚洲| 一区二区三区久久精品| 中文日韩在线| 黑人操亚洲美女惩罚| 欧美成人在线影院| 欧美久久视频| 欧美专区在线观看| 久久亚洲精品一区| 亚洲性图久久| 久久久久久久久伊人| 亚洲美女在线观看| 亚洲在线日韩| 亚洲激情婷婷| 亚洲已满18点击进入久久| 在线观看亚洲a| 一区二区高清在线| 精品动漫3d一区二区三区免费| 欧美激情精品久久久六区热门| 欧美日韩在线视频一区| 久久亚洲视频| 国产精品国产馆在线真实露脸| 老司机免费视频一区二区| 欧美日韩一区二区三区四区在线观看 | 亚洲视频精选| 欧美一区二区黄| 亚洲日本免费电影| 欧美一乱一性一交一视频| 一本久道久久综合狠狠爱| 久久九九免费视频| 午夜精品久久久| 欧美日韩国产va另类| 免费欧美视频| 国产网站欧美日韩免费精品在线观看 | 亚洲精品美女| 久久久在线视频| 欧美一区国产一区| 欧美日韩国产欧| 欧美国产视频在线| 尤妮丝一区二区裸体视频| 亚洲欧美日产图| 亚洲一区二区三区在线| 欧美国产一区二区| 欧美华人在线视频| 在线成人激情黄色| 久久国产精品色婷婷| 亚洲欧美国产高清va在线播| 欧美高清视频一区二区| 欧美风情在线| 亚洲国产精品久久人人爱蜜臀| 性欧美超级视频| 欧美一区二区视频在线| 国产精品久久久久久久午夜片| 午夜精品一区二区三区四区 | 久久视频在线免费观看| 国产精品v欧美精品v日本精品动漫| 国产一区二区三区黄视频| 一区二区三区欧美亚洲| 国产精品99久久久久久人| 蜜桃av一区二区| 久久综合伊人77777蜜臀| 国内精品亚洲| 久久精品99国产精品日本| 久久精品国产91精品亚洲| 国产精品劲爆视频| 亚洲影院免费观看| 欧美一区二区高清| 国产视频久久| 久久精品免费看| 欧美成年人网| 亚洲精品国产日韩| 欧美激情精品久久久久久| 亚洲电影下载| 在线中文字幕日韩| 欧美视频中文在线看| 日韩性生活视频| 亚洲在线网站| 国产综合久久久久久| 久久这里有精品视频| 欧美黄色网络| 这里只有精品视频| 国产欧美短视频| 久久夜色精品国产噜噜av| 欧美激情国产精品| 亚洲婷婷综合色高清在线| 国产精品久久网站| 久久久91精品国产一区二区三区 | 欧美中文字幕不卡| 在线观看日韩av电影| 欧美精品在线视频| 亚洲影院免费观看| 毛片基地黄久久久久久天堂| 亚洲毛片在线| 国产精品欧美久久| 久久国产婷婷国产香蕉| 欧美激情在线| 亚洲欧美精品| 亚洲福利视频一区| 欧美特黄一级大片| 久久精品国产91精品亚洲| 亚洲激情第一区| 欧美一区二区三区啪啪| 亚洲国产日韩在线| 国产精品爽黄69| 欧美激情第10页| 欧美在线综合| 这里只有精品视频| 欧美激情欧美激情在线五月| 性欧美大战久久久久久久久| 亚洲精品国产精品乱码不99按摩| 国产欧美日韩在线| 欧美日韩精品免费观看视频| 久久久久久久波多野高潮日日| 一区二区国产日产| 亚洲一区二区视频| 男女视频一区二区| 亚洲男人的天堂在线| 亚洲国产一区二区三区高清| 欧美中文日韩| 亚洲最快最全在线视频| 国户精品久久久久久久久久久不卡 | 亚洲网站视频| 亚洲国产精品成人| 国产一区二区成人久久免费影院| 欧美精品粉嫩高潮一区二区 | 欧美伊人久久大香线蕉综合69| 一区二区三区欧美| 亚洲人成免费| 在线观看精品| 国产亚洲精品v| 国产欧美精品一区二区三区介绍| 欧美日韩综合不卡| 欧美日韩精品久久| 欧美黑人在线播放| 欧美黄在线观看| 欧美国产日韩免费| 牛人盗摄一区二区三区视频| 久久久久五月天| 久久久久久网| 久久免费视频在线| 久久久久久高潮国产精品视| 久久激情五月丁香伊人| 欧美一区二区三区四区在线 | 亚洲专区在线视频| 亚洲一区久久久| 亚洲影院在线观看| 亚洲欧美一区二区三区极速播放| 亚洲婷婷在线| 午夜欧美大尺度福利影院在线看| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 欧美激情第10页| 欧美另类视频| 国产精品白丝jk黑袜喷水| 国产精品激情电影| 国产亚洲欧美日韩美女| 国产亚洲一区二区三区在线观看 | 欧美成年人视频| 亚洲国产裸拍裸体视频在线观看乱了中文 | 久久精品国产亚洲a| 久久久噜噜噜久久中文字免| 麻豆av一区二区三区| 欧美精品在欧美一区二区少妇| 欧美日韩mv|