MFC 中 Radio Button 使用方法

2022-05-07 18:21:08 字數 2078 閱讀 5682

先為對話方塊加上2個radio button,分別是radio1和radio2。

問題1:如何讓radio1或者radio2預設選上?如何知道哪個被選上了?

關鍵是選上,「預設」只要放在oninitdialog()即可。三種方法可以讓它選上,

第一種:

((cbutton *)getdlgitem(idc_radio1))->setcheck(true);//選上

((cbutton *)getdlgitem(idc_radio1))->setcheck(false);//不選上

((cbutton *)getdlgitem(idc_radio1))->getcheck();//返回1表示選上,0表示沒選上

第二種:

關聯乙個congtrol型變數(子類化),好ctrl+w(即開啟classwizard),點開 member variables,咦?怎麼沒有idc_radio1這個id?原來是沒有分組。因為radio button通常都是成組使用的,在一組裡面是互斥的。取消,回到對話方塊資源面板,右鍵radio1檢視屬性把group選上,那麼,radio1和radio2就是一組了(怎麼知道他們是一組的?後面說)。此時,就可以為radio1增加一congtrol型變數m_ctrlradio1了。如下:

m_ctrlradio1.setcheck(true);

同樣可以使用getcheck()獲取狀態。

第三種:

關聯乙個int型變數(同樣需要先分組)m_nradio1,開啟對話方塊建構函式,你會發現有:

m_nradio1 = -1;m_nradio1別賦值-1表示哪個都沒有選上。如果你把-1改成0,就會發現radio1預設被選上了,依此類推,m_nradio1的值為1就是第二個被選上了(這裡同樣有問題,哪個是第乙個?哪個是第二個?)。獲取狀態很簡單,updatedata(true)後判斷m_nradio1的值即可。

問題2:如何使用多組?

多組和一組是一樣的使用,只要搞清楚哪個是哪一組的就行了。再為對話方塊新增radio3和radio4。很簡單,先為這些radio button排個順序,就是排列他們的tab order。在對話方塊資源面板上ctrl+d,然後按你自己的理想順序用滑鼠逐個點選就可以了。不妨假設radio1、radio2、radio3、radio4分別是1、2、3、4。radio1和radio3都選上group屬性,那麼,1、2是一組,3、4是另外一組,因為分組的原則是在選上group屬性的這乙個開始直到碰到下乙個選上group屬性的。你不妨再ctrl+d,令radio1、radio2、radio3、radio4分別是1、3、2、4,那麼radio1和radio3是一組,如果m_nradio1=1,此時是radio3被選上而不是radio2被選上。分好了組就分別使用它們吧。

嗯,也許你還要為它們新增滑鼠單擊事件,非常簡單。

一、對單選按鈕進行分組:

每組的第乙個單選按鈕設定屬性: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

二、用classwizard為單選控制項定義變數,每組只能定義乙個。如:m_radio1、m_radio4。

三、用classwizard生成各單選按鈕的單擊訊息函式,並加入內容:

void cweditview::onradio1() 

void cweditview::onradio2()

void cweditview::onradio3()

void cweditview::onradio4()

void cweditview::onradio5()

四、設定預設按鈕:

在定義控制項變數時,classwizard在建構函式中會把變數初值設為-1,只需把它改為其它值即可。

如:

//}afx_data_init

MFC分組Radio Button的使用

1 先在視窗上新增乙個group box控制項,然後分別在裡面新增多個radio button控制項 2 將第乙個radio的group屬性設為true 3 為第乙個radio新增數值型關聯變數,如下圖 在用類嚮導新增關聯變聯時,只能看到group中被設為true的radio的id 4 新增完成後,...

VC中Radio Button的用法

radio button 使用 使用方法一 在工程中新增控制項後,直接在控制項的click事件中寫入需要的 即可 使用方法二 1.建立乙個基於對話方塊的用用程式,在其中加入三個radio button,id分別為 idc radio1,idc radio2,idc radio3 2.控制項的初始化 ...

RadioButton和RadioGroup的異同

沒有radiogroup的情況下,radiobutton可以全部都選中 修改radiobutton的外觀,自定義方式 drawable中設定選中與 未選擇時 的背景 color中設定 選中與未選擇是文字顏色。android drawable drawable tabswitcher long and...