VS2013/MFC基於對話框編程:[12]單選按鈕?

Tags: 按鈕, 對話框,

單選按鈕(Radio Button)常用於多選一的情況,比如試卷的選擇題,抽樣調查的選項等等,但在實際中一般用來選擇不同的設置選項以達到不同的目的,本經驗通過簡單的例子講述如何使用單選按鈕。

VS2013/MFC基於對話框編程:[12]單選按鈕

工具/原料

Visual Studio 2013

方法/步驟

新建項目,打開對話框設計界面,在對話框中添加若干控件:

3個編輯框,1個按鈕,兩組單選組合,若干個靜態文本。

功能:兩個編輯框選擇加減乘除運算,並將結果送入第三個編輯框顯示,計算按鈕通過第二組單選按鈕組選擇啟用或者禁用。

VS2013/MFC基於對話框編程:[12]單選按鈕

VS2013/MFC基於對話框編程:[12]單選按鈕

修改屬性,包括ID和Caption,以及編輯框的只讀屬性等。

按鈕ID為IDC_CALC,編輯框ID為IDC_Add1、IDC_Add2、IDC_Result;

算法組的單選按鈕ID為IDC_Plus、IDC_Minus、IDC_Multi、IDC_Div;

啟用組的單選按鈕ID為IDC_Use、IDC_NUse。

兩編輯框之間的靜態文本ID為IDC_Algorithm,表示當前選用的算法。

VS2013/MFC基於對話框編程:[12]單選按鈕

最重要的一步:修改單選按鈕的Group屬性,本例程共有兩組單選按鈕,需要設定兩個組,每一組的第一個單選按鈕的Group屬性需要為真。

VS2013/MFC基於對話框編程:[12]單選按鈕

VS2013/MFC基於對話框編程:[12]單選按鈕

添加變量和函數:三個編輯框分別添加Double型的變量m_add1、m_add2、m_result。第一組單選按鈕第一個按鈕添加int m_plus;第二組單選按鈕第一個按鈕添加BOOL m_use;IDC_Algorithm靜態文本對應變量CStatic m_algroithm;

雙擊計算按鈕添加按鈕按下事件處理函數。

修改初始化函數OnInitDialog添加:

GetDlgItem(IDC_CALC)->EnableWindow(false);

VS2013/MFC基於對話框編程:[12]單選按鈕

分別雙擊“啟用”和“禁用”自動生成函數,添加代碼啟用或禁用“計算”按鈕,這樣做就不需要定義m_use變量了,但是如果別的地方需要判斷到底有沒有啟用,就得通過變量判斷了。

VS2013/MFC基於對話框編程:[12]單選按鈕

通過單選選擇“加減乘除”算法,這裡採用單個函數處理多個事件的方式編寫程序,在頭文件中聲明:

afx_msg void OnBnClickedAlgor(UINT nID);

源文件中添加消息映射:

ON_CONTROL_RANGE(BN_CLICKED, IDC_Plus, IDC_Div, OnBnClickedAlgor)

並實現OnBnClickedAlgor函數。

這一步可以參考本系列經驗第10篇“處理多個事件”。

當然也可以逐個雙擊單選按鈕生成4個函數分別處理,不過那樣的話就顯得很麻煩。

VS2013/MFC基於對話框編程:[12]單選按鈕

VS2013/MFC基於對話框編程:[12]單選按鈕

修改計算函數,通過變量m_plus判斷運算符,實現兩數的加減乘除運算。

VS2013/MFC基於對話框編程:[12]單選按鈕

測試程序功能,啟動調試,默認情況計算按鈕不可用,選擇啟用後方可使用,然後選擇運算符,點擊計算得到結果,隨時點擊禁用都會使計算按鈕不可用。

VS2013/MFC基於對話框編程:[12]單選按鈕

VS2013/MFC基於對話框編程:[12]單選按鈕

VS2013/MFC基於對話框編程:[12]單選按鈕

VS2013/MFC基於對話框編程:[12]單選按鈕

注意事項

單選按鈕最重要的屬性就是Group,需要在同一組的按鈕必須ID連續,這就要求添加同組按鈕時連續。

按鈕, 對話框,
相關問題答案