IsDlgButtonChecked

IsDlgButtonChecked該函式可以確定某個按鈕控制項是否有選中標誌,或者三態按鈕控制是否為灰色的、選中的、或兩者都不是。

基本介紹

  • 外文名:IsDlgButtonChecked
函式功能,其他信息,

函式功能

該函式可以確定某個按鈕控制項是否有選中標誌,或者三態按鈕控制是否為灰色的、選中的、或兩者都不是。

其他信息

函式原型:UINT IsDlgButtonChecked(HWND hDlg,Int nlDBUtton);
參數:
hDlg:指向包含按鈕控制的對話框。
nkDButtom:指定按鈕控制的整型標識符。
返回值:使用BS_AUTOCHECKBOX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKBOX、BS_RADIOBUTION或BS_3STATE樣式創建的按鈕的返回值可以是如下值之一:
BST_CHECKED:表示按鈕被選中。
BST_INDETERMINATE:表示按鈕是灰色的,即為不確定狀態(只有具有BS_3STATE或BS_AUTO3STATE樣式的按鈕才使用該值)。
BST_UNCHECKED:表示該按鈕未選中(unckecked)。如果該按鈕用其他任何樣式,那么返回值為零。
速查:Windows NT:3.1及以11版本;Windows:95及以上版本;Windows CE:不支持:頭檔案:winuser.h;庫檔案:user32.lib。
實例:
//按鈕動作回響函式
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl,
UINT codeNotify)
{
switch(id)
{
case IDOK:
//點擊確定按鈕,判斷選中的單選按鈕狀態
{
UINT iChecked1;
//定義一個接收返回值的變數,這個函式的返回值類型為UINT
iChecked1 = IsDlgButtonChecked(hwnd,IDC_RADIO1);
//得到單選按鈕IDC_RADIO1的返回值,存儲到iChecked1 ,
if(iChecked1 == BST_CHECKED)//判斷單選按鈕IDC_RADIO1的返回值的狀態為選中
{
MessageBox(NULL,TEXT("選中狀態"),TEXT("提示"),MB_OK);
}
if(iChecked1 == BST_UNCHECKED)//判斷單選按鈕IDC_RADIO1的返回值的狀態為未選中
{
MessageBox(NULL,TEXT("未選中狀態"),TEXT("提示"),MB_OK);
}
else if(iChecked1 == BST_INDETERMINATE)//判斷單選按鈕IDC_RADIO1的返回值的狀態為灰色,一般不用
{
MessageBox(NULL,TEXT("不確定狀態"),TEXT("提示"),MB_OK);
}
else
{
return ;
}//以上三種狀態都不出現時,直接返回.
break;
default:
break;
}
}
}
IsDlgButtonChecked這個函式只能判讀一個按鈕,如果有多個按鈕的話可以自己編寫一個函式如:第一個參數為視窗句柄,第二個參數為第一個按鈕id,第三個參數為最後一個按鈕id
int GetCheckRadioButton(HWND hwnd,int firstId,int lastId){
int i;
UINT iChecked;
for(i = firstId;i < lastId;i++){
iChecked = IsDlgButtonChecked(hwnd,i);
if(iChecked == BST_CHECKED){
return i;
}
}
return -1;
}

相關詞條

熱門詞條

聯絡我們