WinApi obsługa zdarzenia

0

Witam, od kilku dni uczę się WinApi :), czytam różne kursy itp, jednak jak wiadomo początki są najtrudniejsze. Przejdę może jednak do rzeczy. Mam taki program, gdzie mam sobie pole edycyjne w którym mogę sobie wpisywać tekst itp, a na dole pod tym polem przycisk. Po naciśnięciu tego przycisku tekst z pola edycyjnego zostaje wyczyszczony. To była jakby moja praca domowa z programowania(Technikum-Informatyczne). Ja jednak jestem bardziej ambitny i chciałbym zrobić coś trudniejszego. Mianowicie...zrobiłem sobie dodatkowo ComboBox, w którym mam dwie opcje:1) wyczyść tekst
2) wyczyść tekst II

Opcja druga różniła by się tylko tym, że po wyczyszczeniu w Polu Edycyjnym znajdował by się napis "wyczyszczone". Jednak...nie za bardzo wiem co dać. Do tej pory miałem po prostu obsługę przycisku. Czyli mówiąc bardziej ściśle: Button wciśnięty to wywołaj funkcje: SetWindowText(hEdit,"");

Teraz muszę to przerobić na: jeżeli Button wciśnięty i w ComboBoxie wybrana opcja pierwsza(wyczyść tekst) wywołaj w/w funkcje.

No i oczywiście: Jeżeli Button wciśnięty i w ComboBoxie wybrana opcja druga(wyczyść tekst II) wywołaj funkcję: SetWindowText(hEdit,"wyczyszczono");

Z góry dzięki za pomoc :D

0

Najprościej jest zrobić obsługę komunikatu WM_COMMAND
Z tego co pamiętam powinno być to mniej więcej takie coś:

case WM_COMMAND:
if ( ( HWND ) lParam == hButton  )
     MessageBox( hwnd, L"Nacisnąłeś przycisk", L"Działa", MB_ICONINFORMATION );
break;

ComboBoxem nigdy się nie bawiłem.

Ewentualnie możesz oprogramować samemu komunikaty BUTTON.
Poczytaj np. to:
http://cpp0x.pl/kursy/Kurs-WinAPI-C++/Podstawy/Lamacze-komunikatow/335
i to:
http://cpp0x.pl/kursy/Kurs-WinAPI-C++/Zaawansowane/Subclassing-i-superclassing/197

0

Przecież ten dodatkowy ComboBox nie zmieni Ci nic, poza tym, że w obsłudze przycisku musisz dodatkowo pobrać to co jest zaznaczone i IFem wykonać odpowiednią akcję...
czyli jeśli masz w obsłudze przycisku:

SetWindowText(hEdit, TEXT(""));

zmieniasz na:

int index = SendMessage(hComboBox, CB_GETCURSEL); * pobierasz co jest w comboboxie: http:*msdn.microsoft.com/en-us/library/windows/desktop/bb775845(v=vs.85).aspx
if(index == 0) SetWindowText(hEdit, TEXT(""));
else if(index == 1) SetWindowText(hEdit, TEXT("wyczyszczone..."));
else SetWindowText(hEdit, TEXT("przecież nie ma trzeciej opcji!!!"));

proste jak budowa cepa

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