Skocz do zawartości

Przysłanianie kontrolek


Trix

Recommended Posts

Po kilku dniach użerania się z kontrolkami Tab udało mi się wreszcie rozwiązać ten problem. Rozwiązanie jest jak zwykle banalne...
Mój problem odnosi się nie tylko do kontrolki zakładek ale ogólnie do okien ( czyli np. kontrolek zasłoniętych przez inne kontrolki ). Jak wiemy okno ma swoje współrzędne x,y ( lewy górny róg ) oraz szerokość i długość. Jednak aby system wiedział, które okno jest aktualnie widoczne ( jest na wierzchu), wykorzystuje współrzędną z, która określa, jak głeboko znajduje się okno. Do sterowania ( nie bezpośredniego) oknem w wymiarze z służy funkcja SetWindowPos. W moim przypadku pierwsza kontrolka zasłaniała drugą, więc przesłałem tą pierwszą na sam "spód":

invoke SetWindowPos, hcMainTab, HWND_BOTTOM, 0, 0,\
                                 0, 0, SWP_NOMOVE or SWP_NOSIZE

I tyle...Prawda, że banalne?

Link do komentarza
Udostępnij na innych stronach

Swego czasu miałem podobny problem, rozwiązałem go jednak w inny sposób. Stworzyłem sobie nową klasę okna i na tabie umieszczałem jedynie okno tej klasy. Dopiero na nim znajdowały się poszczególne kontrolki. Kiedy użytkownik zmieniał zakładkę, przy pomocy funkcji ShowWindow ukrywałem stare okno bazowe (SW_HIDE), a nowe pokazywałem (SW_SHOW). Z tego co mi wiadomo podobnie działają równierz taby w property sheetach więc metoda ta nie była zła. Pozdrawiam :)

Link do komentarza
Udostępnij na innych stronach

Faktycznie - wydaje się to bardziej funkcjonalne niż to przełączanie. Dodatkowo, jeśli dobrze rozumiem wystarczyło, że ukryłeś całe okno i wszystkie kontrolki na nim były równierz ukrywane? Ja ukrywam i pokazuje kontrolki oddzielnie, co jest bardzo niewygodne, zajmuje dużo miejsca w kodzie i wprowadza bałagan...no ale cóż - początkujący jestem i uczę sie dopiero:)

pozdrawiam

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