Skocz do zawartości

[C++, WinAPI] MouseOver i Leave na kontrolkach


Rudy

Rekomendowane odpowiedzi

Witam wszystkich zagorzałych fanów aplikacji okienkowych pod C++ :D

 

Niedawno zacząłem pisać pewien program pod WinAPI. Jest już dosyć rozbudowany, posiada nawet StatusBar. Posiada... ale zbytnio nie wykorzystuje. Chciałbym na nim wypisywać podpowiedzi, co gdzie do czego się może przydać. Właściwie mam już wszystko, zostało mi tylko wykrywanie, kiedy myszka najeżdża/odjeżdża od kontrolki. Sam tego nie umiem zrobić, więc proszę o pomoc Was ;) .

 

Pewnym utrudnieniem może być to, że te kontrolki mają za okno rodzica inną kontrolkę, która jest podpięta pod okno główne (tzn omawiana kontrolka nie jest bezpośrednim oknem potomnym okna głównego). WM_MOUSEMOVE odpada, myszka poza obszarem zależnym od okna głównego.

 

Dla przykładu weźmy kontrolkę na pozycji 10x10 o szerokości 100 i wysokości 40 i uchwycie zapisanym w ctrlButton. Znajduje się ona na kontrolce ctrlTab, uchwyt okna głównego to hwnd.

 

Nie chodzi mi o to, jak pobrać pozycję myszki, czy zmienić napis na pasku, głównie chodzi o to, jaką wiadomość mam przechwycić, żebym mógł wychwycić moment wjazdu/zjazdu.

 

Jakieś pomysły?

 

 

Pytania na 6 :D

1. Co jest szybsze ++a, czy a++? (chce się upewnić)

2. VC nie chce mi podpowiadać (nie wyskakują okienka z listami), co może być tego przyczyną?

Odnośnik do komentarza
Udostępnij na innych stronach

Jakieś pomysły?

Tak, przerzuć się na qt,wxwidgets, własne gui czy c#.

 

1. Co jest szybsze ++a, czy a++? (chce się upewnić)

Zależy od sytuacji i od kompilatora. Ogólnie gdzie się da dawać ++a.

 

2. VC nie chce mi podpowiadać (nie wyskakują okienka z listami), co może być tego przyczyną?

Sprawdź w opcjach Text Editor jakie masz ustawienia. Opcjonalnie możesz np zresetować ustawienia: devenv.exe /Resetsettings (chyba tak to było)

Odnośnik do komentarza
Udostępnij na innych stronach

Tak, przerzuć się na qt,wxwidgets, własne gui czy c#.

Jak narazie WinAPI mnie nie zawiódł, zawsze znajdowałem jakieś wyjście i oferuje naprawdę dużo funkcji. Na chwilę obecną nie chce się przesiadać ;)

 

Zależy od sytuacji i od kompilatora. Ogólnie gdzie się da dawać ++a.

Tak też myślałem, tylko widząc za każdym razem a++ zacząłem się zastanawiać... Anyway dzięki za odp.

Sprawdź w opcjach Text Editor jakie masz ustawienia. Opcjonalnie możesz np zresetować ustawienia: devenv.exe /Resetsettings (chyba tak to było)

Opcje edytora w porządku, bardziej chodziło mi o listę możliwych dokończeń "słowa", tzn wpisujesz dwie pierwsze litery funkcji, a program pokazuje ci wszystkie możliwości. Coś takiego mi się nie wyświetla.

Odnośnik do komentarza
Udostępnij na innych stronach

Jak narazie WinAPI mnie nie zawiódł, zawsze znajdowałem jakieś wyjście i oferuje naprawdę dużo funkcji. Na chwilę obecną nie chce się przesiadać

Poświęć na qt/wxwidgets 2dni a zmienisz zdanie.

Opcje edytora w porządku, bardziej chodziło mi o listę możliwych dokończeń "słowa", tzn wpisujesz dwie pierwsze litery funkcji, a program pokazuje ci wszystkie możliwości. Coś takiego mi się nie wyświetla.

 

Właśnie o tym pisałem? Możesz mieć wyłączony intellisense w opcjach. Niektóre dodatki do visuala przy instalacji wyłączają deffaultowy intellisense.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...