Skocz do zawartości

WS_TABSTOP ?


Recommended Posts

Napisano

Jak to jest w rzeczywistości z kontrolkami (np. buttonami), którym dodajessz styl WS_TABSTOP a oknu głównemu przypisujesz styl WS_EX_CONTROLPARENT i co? I nic. Klikasz tabulacją, a fokus wcale nie przeskakuje do następnej kontrolki ze stylem WS_TABSTOP

Napisano

Pewnie moje infromacje są błędne ale i tak napisze.
Według moich źródeł musisz sam obslużyć kotnrolki w oknie tzn klawisz Tab poprzez Subclassing (czy jakos tak). Ja tak robie i mi to działa ;]

Napisano

Nie jest to złe spostrzerzenie, bo też o tym zaczynam tak mysleć. Ale to po co jest ten WS_TABSTOP. Bo po co dodawać tyle kodu (samemu obsługiwać procedure) jak przecierz ta stała jakoś musi być wykorzystana.

Napisano

Nie wydaje mi się. Poszukałem i troche poczytałem Wiem, że tworzy się kontrolki, która pierwsz musi mieć styl (oprócz WS_TABSTOP) WS_GROUP. Nastepne tylko WS_TABSTOP. Robi się to aby określić grupę kontrolek, które będą mogły być fokusowane przez strzałki. No ale cholera tworze tak i nic - a pisało jak wół. Napewno to działa tylko chyba coś źle robię.

Napisano

ja w MSDNie wycztalem takei cos:

WS_GROUP and WS_TABSTOP Flags in Controls
A control should not use the WS_GROUP and WS_TABSTOP flags internally; some containers rely on these flags to manage keyboard handling.

Nie wiem co to do konca znaxczy ale moze pomoze ;]
Zreszta jak bedziesz wiedzial w koncu co i jak to daj znac na forum ;]

Napisano

Wystarczyło, że wszedłem na stronę https://www.programmersheaven.com i znalazłem odpowiedź na tamtym forum. Ogólnie dużo osób się o to pyta, a odpowiedź jest bardzo prosta. Wystarczy w pętli komunikatów okna wykorzystać funkcję IsDialogMessage. A co najlepsze, otwieram plik pomocy win32.hlp, szukam informacji o tej funkcji (myslałe, że ona jest tylko wtedy potrzebna gdy wykorzystujemy w naszym głównym oknie okienka dialogowe z zasobów) i pisze jak wół o korzystaniu z tej funkcji też dla tabulacji:

...
Remarks

Although the IsDialogMessage function is intended for modeless dialog boxes, you can use it with any window that contains controls, enabling the windows to provide the same keyboard selection as is used in a dialog box.
When IsDialogMessage processes a message, it checks for keyboard messages and converts them into selection commands for the corresponding dialog box. For example, the TAB key, when pressed, selects the next control or group of controls, and the DOWN ARROW key, when pressed, selects the next control in a group.

...

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...