Jump to content
Sign in to follow this  
Trix

Przysłanianie kontrolek

Recommended Posts

Witam
Mam kolejny "błahy" problem;) Mam dwie kontrolki Tab. Kiedy klikam na jedną z zakładek to pokazuje mi się druga kontrolka Tab, tylko że jest ona przysłonięta przez tą pierwszą...Włączyłem styl WS_EX_TRANSPARENT ale nic nie pomogło. Jak się z tym można uporać?

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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 :)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

Sign in to follow this  

×
×
  • Create New...