Obsługa ComboBoxa

Odpowiedz Nowy wątek
2011-09-27 01:04
0

Mam problem z obsługą comboboxów, dokładnie chodzi o to jak wybiore COMBOBOX1 to ma pojawić się MessageBox z info o wybranym comboboxie1, u mnie to nie działa i nie wiem dlaczego?
Wrzucam samą obsługę zdarzeń:

LRESULT CALLBACK WndProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
 static HWND hcombobox = 0;
 switch (msg)
 {
  case WM_CREATE:
     hcombobox = CreateWindowEx (0, "COMBOBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | CBS_DROPDOWNLIST, 5, 5, 150, 200, hwnd, (HMENU)ID_COMBOBOX, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
     SendMessage(hcombobox, CB_ADDSTRING, 0, (LPARAM)"COMBOBOX 1");
     SendMessage(hcombobox, CB_ADDSTRING, 0, (LPARAM)"COMBOBOX 2");
  case WM_COMMAND:
          switch (wParam) 
           {
            case ID_COMBOBOX:
                 if (lParam == (LPARAM)hcombobox && HIWORD (wParam) == CBN_SELENDOK)
                 {
                    int iIndex = SendMessage(hcombobox, CB_GETCURSEL, 0, 0);
                    if (iIndex == 0)
                         MessageBox(hwnd,"Jupiiiii pozycja 1 zaznaczona !","", 0);
                 }
            break;
             default:
              return DefWindowProc (hwnd, msg, wParam, lParam);
           }
  break;
  case WM_CLOSE:
   DestroyWindow (hwnd);
  break;

  case WM_DESTROY:
   PostQuitMessage (0);
  break;

  default:
   return DefWindowProc (hwnd, msg, wParam, lParam);
  }

 return 0;
}

Pozostało 580 znaków

2011-09-27 10:42

Co nie działa?
Czy ten ComboBox w ogóle pojawia się na formie?

EDIT:
tak na oko: switch (LOWORD(wParam))


░█░█░█░█░█░█░█░█░█░█░█░
edytowany 1x, ostatnio: krwq, 2011-09-27 10:46
Faktycznie zapomniałem przekonwertować na LOWORD. THX! - czarny020 2011-09-27 15:02

Pozostało 580 znaków

2011-09-27 11:12
arasso12
0

http://msdn.microsoft.com/en-[...]op/bb775792%28v=VS.85%29.aspx

CBN_SELCHANGE

The CBN_SELCHANGE notification code is sent when the user changes the current selection in the list box of a combo box. The user can change the selection by clicking in the list box or by using the arrow keys. The parent window of the combo box receives this notification in the form of a WM_COMMAND message with CBN_SELCHANGE in the high-order word of the wParam parameter.

Obsłuż ten komunikat i będzie ok :) (jezeli dobrze rozumiem)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0