.
Я новичок в C ++ и пытаюсь получить значение переключателя для использования в моем приложении.
Но я не могу получить правильное состояние своей кнопки радио.
Вот что я кодировал:
hDecRB = CreateWindow(TEXT("BUTTON"), TEXT("Decimal Result"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,20, 80, 150, 30, hWnd, NULL, NULL, NULL);
hDecRB = CreateWindow(TEXT("BUTTON"), TEXT("Binary Result"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,20, 120, 150, 30, hWnd, NULL, NULL, NULL);
hDecRB = CreateWindow(TEXT("BUTTON"), TEXT("Octal Result"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,20, 160, 150, 30, hWnd, NULL, NULL, NULL);
hDecRB = CreateWindow(TEXT("BUTTON"), TEXT("Hex Result"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,20, 200, 150, 30, hWnd, NULL, NULL, NULL);if(BM_GETCHECK==BST_CHECKED)
{
flag=Button_GetState(hBinRB);
MessageBox(NULL,"CHECKED","sachin",MB_OK);
}
else
{
MessageBox(NULL,"Binary not checked","sachin",MB_OK);
MessageBox(NULL,(LPCSTR)flag,"sachin",MB_OK);
}
но когда я нажимаю на свою отмененную кнопку, чтобы проверить состояние переключателя, она показывает, что я не отмечен как в проверенных, так и в непроверенных условиях.
Пожалуйста, помогите мне выбраться из этого. , ,
if(BM_GETCHECK==BST_CHECKED)
Это условие всегда будет оцениваться как ложное. Вот почему он говорит вам, что кнопка не проверяется независимо от состояния кнопки.
В вашем случае вы, вероятно, хотите что-то вроде этого:
if(Button_GetState(hDecRB) == BST_CHECKED) {
MessageBox(NULL,"CHECKED","sachin",MB_OK);
}
else {
MessageBox(NULL,"Binary not checked","sachin",MB_OK);
MessageBox(NULL,(LPCSTR)flag,"sachin",MB_OK);
}
Также вам нужно хранить каждую кнопку в отдельном HWND. Вы используете hDecRB для каждого, который перезаписывается каждый раз, когда вы переназначаете его.
http://msdn.microsoft.com/en-us/library/windows/desktop/bb775986(v=vs.85).aspx
Если ваша кнопка была создана как часть диалогового шаблона (диалогового ресурса), то вы должны использовать
if (IsDlgButtonChecked(hDlg, buttonID) == BST_CHECKED)
Использовать шаблон диалога гораздо проще, чем создавать окна кнопок вручную, как это делает ваш код …