kiraler Temat założony przez niniejszego użytkownika |
[WinAPI] Zaznaczanie radio buttonów » 2013-05-07 00:28:48 Witam, mam okno w WinApi z textboxem, dwoma radio buttonami, i przyciskiem. Mój problem polega na tym, że jak kliknę na pole tekstowe, to automatycznie zaznacza się pierwszy radio button, a jeżeli chcę następnie zaznaczyć drugi radio button to muszę kliknąć dwa razy, ponieważ za pierwszym razem nie załapuje. Jaki błąd zrobiłem ? Kawałek kodu: if(( IsDlgButtonChecked( hwnd, ID_RADIO1 ) == BST_CHECKED ) &&( !(( HWND ) lParam == g_hPrzycisk ) ) ) { CheckRadioButton( hwnd, ID_RADIO1, ID_RADIO2, ID_RADIO2 ); } else if(( IsDlgButtonChecked( hwnd, ID_RADIO2 ) == BST_CHECKED ) &&( !(( HWND ) lParam == g_hPrzycisk ) ) ) { CheckRadioButton( hwnd, ID_RADIO1, ID_RADIO2, ID_RADIO1 ); } if(( IsDlgButtonChecked( hwnd, ID_RADIO1 ) ) &&(( HWND ) lParam == g_hPrzycisk ) ) { dlugosc = GetWindowTextLength( g_hTekst );
A tutaj tworzenie radio buttonów i text boxa: g_hRadio01 = CreateWindowEx( 0, "BUTTON", "Szyfrowanie", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, 173, 30, 110, 20, hwnd,( HMENU ) ID_RADIO1, hInstance, NULL ),
g_hRadio02 = CreateWindowEx( 0, "BUTTON", "Odszyfrowanie", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, 173, 55, 110, 20, hwnd,( HMENU ) ID_RADIO2, hInstance, NULL ),
g_hTekst = CreateWindowEx( WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE | ES_AUTOVSCROLL, 30, 25, 130, 100, hwnd, NULL, hInstance, NULL );
|
DejaVu |
» 2013-05-21 08:33:23 if(( IsDlgButtonChecked( hwnd, ID_RADIO1 ) == BST_CHECKED ) &&( !(( HWND ) lParam == g_hPrzycisk ) ) )
{
CheckRadioButton( hwnd, ID_RADIO1, ID_RADIO2, ID_RADIO2 );
}
else if(( IsDlgButtonChecked( hwnd, ID_RADIO2 ) == BST_CHECKED ) &&( !(( HWND ) lParam == g_hPrzycisk ) ) )
{
CheckRadioButton( hwnd, ID_RADIO1, ID_RADIO2, ID_RADIO1 );
}
|
Jak na moje oko to warunki są nieco bezsensowne.
Obecnie masz:
Jeżeli radio1 jest zaznaczony i lParam!=g_hPrzycisk to zaznacz radio2. |
A jeżeli zaznaczony jest radio1 i kliknę ponownie na radio1, to co ma się stać? |