VC 判斷選中的 單選框 複選框的
一 vc對話方塊中的組框控制元件起什麼作用?
1)它可將多個單選按鈕圈起來,再將你想設為預設按鈕的那個按鈕的Group屬性選中,其它按鈕的Group屬性取消。
這樣這些RADIO按鈕就成了一組可以實現在他們之間進行單選,這4個按鈕只有group屬性的可以對映一個變數,其型別為int,這個變數可以用來返回使用者選擇了哪個選項,0表示選擇了第一個,1表示選擇了第二個,
....依此類推
這樣以後就可以分別對不同的RADIO按鈕進行訊息映射了
2)基本上就是為了畫面效果,將相關的一些控制元件圈起來,起個擡頭。
在對話方塊里拉一個GroupBox,設定擡頭內容,把需要的控制元件圈起來即可。
3)被分到一組裡的單選框是互斥的,不在一個組裡的單選框是互不影響的(組框裡的單選框只能一個被選中)
二 判斷被選中的單選框
VC中建立基於對話方塊的類,在對話方塊控制元件中新增組框,在組框中放三個單選框,ID分別為IDC_RADIO1,IDC_RADIO2,IDC_RADIO3.可以在對話方塊控制元件中新增一個Button控制元件,在Button控制元件單擊命令響應中新增如下命令(程式碼僅起示例作用)
UINT nSex=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO3);//引數分別為第一個、最後一個單選框的ID號
switch(nSex)
{
case IDC_RADIO1:
::AfxMessageBox("選中第一個");break;
case IDC_RADIO2:
::AfxMessageBox("選中第2個");break;
case IDC_RADIO3:
::AfxMessageBox("選中第3個");break;
}
三 判斷被選中的複選框
VC中建立基於對話方塊的類,在對話方塊控制元件中新增組框(可以不新增),在組框中放三個複選框,ID分別為IDC_CHECK1,IDC_IDC_CHECK12,IDC_IDC_CHECK3.可以在對話方塊控制元件中新增一個Button控制元件,在Button控制元件單擊命令響應中新增如下命令(程式碼僅起示例作用)
if((IsDlgButtonChecked(IDC_CHECK1))&&(IsDlgButtonChecked(IDC_CHECK2)))
::AfxMessageBox("選中第1 第2個複選框");
if((IsDlgButtonChecked(IDC_CHECK1))&&(IsDlgButtonChecked(IDC_CHECK3)))
::AfxMessageBox("選中第1 第3個複選框");
if((IsDlgButtonChecked(IDC_CHECK3))&&(IsDlgButtonChecked(IDC_CHECK2)))
::AfxMessageBox("選中第2 第3個複選框");
函式功能:該函式改變按鈕控制的選中狀態。
引數:
hDlg:指向含有該按鈕的對話方塊的控制代碼。
nlDButton:標識要修改的按鈕。
uCheck:給定該按鈕的選中狀態。該引數可取下列值,這些值的含義如下:
BST_CHECKED:設定按鈕狀態為己選中(checked)。
BST_INDETERMINATE:設定按鈕狀態變灰,表示不確定狀態。只有在該按鈕具有BS_3STATE或BS_AUTO3STATE樣式時才能使用該值。
BST_UNCHECKED:設定按鈕為未選中狀態(unchecked)。
返回值:如果函式執行成功,返回值非零;如果函式失敗,則返回值為零。若想獲取更多錯誤資訊,請呼叫 GetLastError函式。
示例程式
CheckDlgButton(IDC_L_SHOW_TITLE,g_SystemPara.m_bShowTitle);
CheckDlgButton(IDC_L_SHOW_BACKGROUND,g_SystemPara.m_bShowBackground);
CheckDlgButton(IDC_L_SHOW_NAME,g_SystemPara.m_bShowName);
CheckDlgButton(IDC_L_SHOW_ID,g_SystemPara.m_bShowID);
CheckDlgButton(IDC_L_SHOW_GROUPID,g_SystemPara.m_bShowGroupID);
CheckDlgButton(IDC_L_SHOW_LON, g_SystemPara.m_bShowLon);
CheckDlgButton(IDC_L_SHOW_LAT, g_SystemPara.m_bShowLat);
CheckDlgButton(IDC_L_SHOW_HEIGHT, g_SystemPara.m_bShowHeight);
CheckDlgButton(IDC_ALWAYS_SHOW,g_SystemPara.m_bAlwaysShow);
註釋:示例程式中變數為BOOL型別,而vc中,定義如下,注意使用技巧:
#define BST_UNCHECKED 0x0000
#define BST_CHECKED 0x0001
#define BST_INDETERMINATE 0x0002