Reputation: 387
I have a button, if i were to say click a checkbox, it should then give one of two buttons focus.
I am not sure how to use BM_SETSTATE - if that is the way to do it.
// snip...
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDC_CHECK:
if (IsDlgButtonChecked(hDlg, IDC_CHECK))
{
EnableWindow(GetDlgItem(hDlg, IDOK), TRUE);
EnableWindow(GetDlgItem(hDlg, IDCANCEL), TRUE);
BM_SETSTATE // ... ??
}
else
// ... snip
any help is greatly appreciated! thanks much!
Upvotes: 4
Views: 4141
Reputation: 797
To make a button default in win32 (which i guess is your question) can simply be done by sending the button a BM_SETSTYLE message with BS_DEFPUSHBUTTON as the WPARAM...
HWND hwndButton = CreateWindow("button", "OK", WS_VISIBLE |...);
SendMessage(hwndButton, BM_SETSTYLE, (WPARAM)BS_DEFPUSHBUTTON, TRUE);
Hope this helps... ;-)
Upvotes: 2
Reputation: 347206
I'm not sure if you understand exactly what you're asking, but maybe.
The highlight state indicates whether the button is highlighted as if the user had pushed it. It does not indicate whether the button has focus nor does it indicate whether the button is checked or not.
If you really want to do this though, use the Button_SetState macro.
Just in case:
Upvotes: 4