Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Odczyt stanu ComboBox

Ostatnio zmodyfikowano 2015-10-16 12:10
Autor Wiadomość
robertt_2008
Temat założony przez niniejszego użytkownika
Odczyt stanu ComboBox
» 2015-10-15 19:25:51
Witam. Utworzyłem ComboBox i potrzebuje odczytać która opcja została wybrana , powinien pojawić się wtedy komunikat wyboru. Niestety mój program owszem wyświetla poprawnie wybraną opcje lecz komunikat pojawia się kilka razy i przy próbie wyboru innego elementu listy komunikat pozostaje ten sam. Oto część programu:
C/C++
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
   
    switch( msg )
    {
    case WM_CLOSE:
        DestroyWindow( hwnd );
        break;
       
    case WM_DESTROY:
        PostQuitMessage( 0 );
        break;
       
    case WM_COMMAND:
        switch( wParam )
        {
        case ID_START:
            MessageBox( hwnd, "Wcisnąłeś przycisk 1", "START", MB_ICONINFORMATION );
            break;
           
        case ID_STOP:
            MessageBox( hwnd, "Wcisnąłeś przycisk 2", "STOP", MB_ICONINFORMATION );
            break;
        }
       
        if(( HWND ) lParam == hCombo )
        {
           
            int ID_COMBO = ComboBox_GetCurSel( hCombo );
           
            switch( ID_COMBO )
            {
            case 0:
                MessageBox( hwnd, "Wcisnąłeś przycisk 10 kb/s ", "BOUD RATE", MB_ICONINFORMATION );
                break;
               
            case 1:
                MessageBox( hwnd, "Wcisnąłeś przycisk 20 kb/s ", "BOUD RATE", MB_ICONINFORMATION );
                break;
               
            }
        }
       
        default:
        return DefWindowProc( hwnd, msg, wParam, lParam );
    }
   
   
    return 0;
   
}
P-138631
carlosmay
» 2015-10-15 22:25:34
C/C++
// po utworzeniu kontrolki hCombo w WinMain, czy tez WM_CREATE:
cb_element_1 = SendMessage( hCombo, CB_ADDSTRING, 0,( LPARAM ) L"Elem 1" ); // tworzenie pol combo
cb_element_2 = SendMessage( hCombo, CB_ADDSTRING, 0,( LPARAM ) L"Elem 2" );

C/C++
case WM_COMMAND:
if( lParam ==( LPARAM ) hCombo && HIWORD( wParam ) == CBN_SELENDOK ) // lParam zawiera wskaznik do combo, a gorny wyraz wParam posiada ID select
{
    int iIndex = SendMessage( hCombo, CB_GETCURSEL, 0, 0 ); // pobiera nr wyb pola
    if( cb_element_1 == iIndex ) // zrob cos
    else if( cb_element_2 == iIndex ) // zrob cos
    //....
}
P-138665
robertt_2008
Temat założony przez niniejszego użytkownika
» 2015-10-16 12:10:32
Dziękuje za odpowiedź, Wszystko pięknie działa :D
P-138681
« 1 »
  Strona 1 z 1