Button verändern
-
Hallo Leute,
ich bin C/C++ Anfänger und bin auf ein Problem gestoßen das ich irgendwie nicht gelöst kriege. Folgende Situation: Ich habe einen Button (mit Bitmap)
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { switch(Message) { case WM_CREATE:{ //WND-Proc static HANDLE hBitmap; static HWND hButton; // Bitmap laden aus Datei. Mit GetModuleHandle (NULL) wird die HINSTANCE geholt. hBitmap= LoadImage (GetModuleHandle (NULL), "Button4.2.bmp", IMAGE_BITMAP,0, 0,LR_DEFAULTCOLOR | LR_LOADFROMFILE); // Jetzt wird ein Button erzeugt. hButton = CreateWindow("BUTTON", "", WS_VISIBLE|WS_CHILD|BS_BITMAP|BS_FLAT, 20, 525, 400, 69, hwnd, (HMENU) ID_BUTTON, NULL, NULL); //Das Bitmap auf den Button plazieren SendMessage (hButton, BM_SETIMAGE, (WPARAM) IMAGE_BITMAP,(LPARAM)(HANDLE) hBitmap); CreateWindow(TEXT("button"), TEXT(""), WS_VISIBLE | WS_CHILD, 0, 0, 0, 0, hwnd, (HMENU) ID_BUTTON, NULL, NULL);
Nun möchte ich, dass wenn ich mit meiner Maus auf dem Button bin, dass der Button sich verändert. Ich möchte allerdings keine veränderung, wenn ich draufklicke. Sondern nur wenn meine Maus auf dem Button ist.
Ich hoffe ihr könnt mir helfen
LG Aaron
-
Eine kleine Sache habe ich vergessen. Der Button soll sich in eine andere Bitmap verwandeln.
LG Aaron
-
Siehe TrackMouseEvent
https://msdn.microsoft.com/en-us/library/windows/desktop/ms646265(v=vs.85).aspxOder einfach BN_HILITE oder BCN_HOTITEMCHANGE abpassen.
-
Danke für die Antwort.
Das heißt das TrackMouseEvent kommt dann in dencase WM_COMMAND
Kannst du vllt. ein Beispiel machen.
Falls nicht ist es aber auch nicht schlimm
LG Aaron
-
Nein. Du willst ja eine Benachrichtigung sowhl bei Eintritt als auch bei Austritt. Also muss es vorher und danach passieren. Die Nachricht selbst kommt in einer normalen Nachrichten Prozedur an.
Schau Dir doch erstmal die eingebauten Notifications an.
-
http://www.codeproject.com/Articles/1745/Adding-mouse-functionality-to-any-control
http://www.codeguru.com/cpp/controls/buttonctrl/article.php/c2107/Hover-buttons.htm
&&
http://forums.codeguru.com/showthread.php?290195-Mouseover-event
http://stackoverflow.com/questions/4495275/how-to-check-if-a-mouse-is-over-a-control