Skocz do zawartości

Problem natury "quasi-menu'owej" ;)


Saber

Recommended Posts

Hej!

Mój problem jest taki: potrzebuję wykonać w oknie kilka elementów o kształcie, dajmy na to prostokąta, które, po kliknięciu w nie, wykonają konkretną czynność (w tym przypadku ma się zmienić ich wygląd), ale musi się dać przechodzić między nimi za pomocą klawiatury - takie coś na kształt "menu".
Próbowałem za pomocą WM_LBUTTONDOWN, a później odczytywania współrzędnych myszy -bla blabla - czasochłonne, brzydkie rozwiązanie, które na dodatek nie działa, bo nie uwzględnia klawiatury.
Myślałem co nieco o potworzeniu małych "okienek", ale:
1. Nie mogę przebrnąć przez wyrzucenie całej tej otoczki (obiekt ma być jednolity).
2. Odpada używanie klawiatury - jak tu przechodzić między tymi okienkami?

W związku z powyższymi problemami, proszę Was o sugestie. Czy nie dałoby się jakoś tak skonfigurować przycisku, aby spełniał powyższe warunki?

Link do komentarza
Udostępnij na innych stronach

Hmm.. moze spróbuj tak. Daj sobie jakas tablice w ktorej bedziesz przechowywal dane o tych elementach oraz jakas zmienna globalna (lub cos podobnego) która będzie zawierała numer aktualnie zaznaczonego elementu. I jak klikniesz na jakis element msyzka to sprawdzasz który to element i ustawiasz wartosc tej zmiennej globalnej na numer kliknietego elementu. A z klawiatura tez podobnie - sprawdzasz czy został nacisniety jakis guzik odpowiedzilany za zmiane aktywnego elementu i poprostu zmieniasz wartosc tej zmiennje globalenj.

Po kazdej zmianie wymuszasz aby okno sie odmalowalo i w WM_PAINT rysujesz sobie wszystkie elementy z zaznaczeniem aktywnego lementu bo znasz jego nuemr w tablicy ;)

Z oknami jets podobnie. Tworzysz okienka typu WS_CHILD|WS_VISIBLE|WS_POPUP i takze masz taka zmienna globalan a dane mozesz przechowywac w specjalnym miejscu kazdego malego okienka (nie umie tego nazwac ale o tym duzo bylo na forum) lub poprostyu tazke w tablicach. I jak odbierzesz komuniakt malych okienek WS_SETFOCUS to powinienes go automatycznie zmienic na okno głowne bo dzieki temu głowne okno bedzie panowalo nad wszystkim (bedzie odbieralo komuniakty myszy i klawiatury i bedziesz mogl wtedy reagowac na zmiany i zmieniac wyglady tych okienke.

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...