Hej! Som jag har förstått det så trigas bara mus händelserna i fönstrets "Client area". DEt du vill är att känna av när musen kommer in i fönstrets "nonclient area". som Andreas säger, det är WM_NCMouseMove du ska kolla påMouseEnter på titelraden
Jag arbetar med ett formulär i C# som skall minskas ner så att bara titelraden syns då man har musmarkören utanför formuläret. När markören kommer in över titelraden (TitleBar) skall det få sin fulla storlek. Tyvärr reagerar inte de vanliga händelserna (MouseEnter, MouseHover etc) på titelraden utan bara på själva panelen. Några tips?
\HenrikSv: MouseEnter på titelraden
Windows meddelande som rör "nonclient area" har prefixet WM_NC, så som WM_NCMOUSEMOVE.
<info>
The WM_NCMOUSEMOVE message is posted to a window when the cursor is moved within the nonclient area of the window.
This message is posted to the window that contains the cursor. If a window has captured the mouse,
this message is not posted.
A window receives this message through its WindowProc function.
</info>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/mouseinput/mouseinputreference/mouseinputmessages/wm_ncmouseleave.asp
Hur du fångar det meddelande i .Net kan jag tyvärr inte hjälpa dig med nu då jag sitter vid en dator utan Visual studio. Men jag tror det finns andra som kan hjälpa dig med det.Sv: MouseEnter på titelraden
för att plocka det meddelandet behöver du override WndProc på ditt fönster.
protected override something WndProc(somethingsomething)
{
if (something.Message == WM_NCMouseMove)
{
//nu vet vi att du pekar på nån del som inte är client area
//dvs caption eller border
//det ska gå att lästa ut vilken del det är via lparam eller wparam
}
}