Ustawianie wartości Combobox na podstawie innego comboboxa [Win API]

0

Dzień dobry. Pracuję nad aplikacją do obliczania wartości materiałów na podstawie gęstości. Niestety przy próbie zaprogramowania comboboxa pojawił się problem. Mianowicie chciałem aby po wyborze rodzaju materiału w jednym comboboxie pojawiły sie gestosci w drugim. Póki co próbuje wpisywać prostego stringa po wyborze, ale nie bardzo wiem jak wykorzystać CBN_SELCHANGE (i nie tylko). Poniżej kod WindowProc z wykorzystaniem (prawdopodobnie niepoprawnych CBN_SELCHANGE):

// Obsługa zdarzeń
LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	
	switch (msg)
	{
	case WM_COMMAND:
		
		switch (wParam)
		{
		case ID_TYPECOMBOBOX:
			if (lParam == (LPARAM)chooseMaterialTypeComboBox && LOWORD(wParam) == CBN_SELCHANGE)
			{
				int iIndex = SendMessage(chooseMaterialTypeComboBox, CB_GETCURSEL, 0, 0);
				if (iIndex == 0)
					SendMessageA(chooseMaterialGenreComboBox, CB_ADDSTRING, 0, (LPARAM)_T("PA13"));
			}
		}

	break;

	case WM_CREATE://Utworzenie 


Przeszukałem Internet ale nie znalazłem odpowiedzi w jaki sposób można ustawiać wartości w drugim comboboxie za pomocą pierwszego. Jeżeli ktoś ma pomysł jak to zrobić będę wdzięczny za jakąkolwiek wskazówkę.

Pozdrawiam

2

Bracie Mikołaju, w obsłudze CBN_SELCHANGE zapodaj CB_GETCURSEL albo CB_GETLBTEXT - w ten sposób wyciągniesz jaki materiał nastawiono w pierwszym comboboxie.
Następny krok, to załadować do drugiego comboboxa odpowiednie elementy jak już poznałeś selected index i current text pierwszego comboboxa.

A tak w ogóle to zapodaj nieco więcej kodu źródłowego, tak aby zawierał struktury danych dla comboboxów, może da radę coś lepiej zrobić.

Swoją drogą, tak na moje oko tutaj jest o comboboxach w WinAPI wszystko, czego dusza zapragnie.

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