| [?] WM_MOUSEMOVE doesn't work | 
| Author: | Message: | 
| SmokingCookie Senior Member
 
     
 
  
 Posts: 815
 Reputation: 15
 31 /
  /  Joined: Jul 2007
 
 | | O.P.  RE: [?] WM_MOUSEMOVE doesn't work I've got the return value 1, suggesting it should work. | 
 | 
| 04-20-2010 04:32 PM |  | 
|  | 
| matty Scripting Guru
 
      
 
 Posts: 8327
 Reputation: 109
 40 /
  /  Joined: Dec 2002
 Status: Away
 
 | | RE: [?] WM_MOUSEMOVE doesn't work This example is from here: http://www.codeguru.com/forum/showthread.php?t=290195 c++ code://////////// Globals ////////////
 // HWND hWndBtn1 = NULL;
 // HWND hWndBtn2 = NULL;
 // WNDPROC wpOrigButtonProc = NULL;
 // HBITMAP hBmpNormal = NULL;
 // HBITMAP hBmpHiLight = NULL;
 // BOOL bMouseInWindow = FALSE;
 
 // IDC_DLGBTN1 is a button resource
 // IDC_DLGBTN2 is a button resource
 // IDB_BMP_NORMAL is a bitmap resource
 // IDB_BMP_HILIGHT is a bitmap resource
 
 // in WM_INITDIALOG of main dialog procedure
 hWndBtn1 = GetDlgItem(hWnd, IDC_DLGBTN1);
 hWndBtn2 = GetDlgItem(hWnd, IDC_DLGBTN2);
 // load bitmaps
 hBmpNormal  = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BMP_NORMAL));
 hBmpHiLight = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BMP_HILIGHT));
 // set initial button images
 SendMessage(hWndBtn1, BM_SETIMAGE,
 (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpNormal );
 SendMessage(hWndBtn2, BM_SETIMAGE,
 (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpNormal);
 // subclass buttons
 wpOrigButtonProc = (WNDPROC) SetWindowLong(hWndBtn1,
 GWLP_WNDPROC, (LONG) NewButtonProc);
 /* same original btn proc */ SetWindowLong(hWndBtn2,
 GWLP_WNDPROC, (LONG) NewButtonProc);
 
 // in WM_CLOSE of main dialog procedure
 SetWindowLong(hWndBtn1, GWLP_WNDPROC, (LONG)wpOrigButtonProc);
 SetWindowLong(hWndBtn2, GWLP_WNDPROC, (LONG)wpOrigButtonProc);
 
 // NewButtonProc window procedure
 LRESULT CALLBACK NewButtonProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
 switch(uMsg)
 {
 case WM_MOUSEMOVE:
 {
 if (!bMouseInWindow)
 {
 bMouseInWindow = true;
 SendMessage(hWnd, BM_SETIMAGE,
 (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpHiLight );
 TRACKMOUSEEVENT tme;
 tme.cbSize = sizeof(tme);
 tme.dwFlags = TME_LEAVE;
 tme.hwndTrack = hWnd;
 TrackMouseEvent(&tme);
 }
 }
 break;
 case WM_MOUSELEAVE:
 {
 bMouseInWindow = false;
 SendMessage(hWnd, BM_SETIMAGE,
 (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpNormal);
 }
 break;
 default:
 return CallWindowProc(wpOrigButtonProc, hWnd,
 uMsg, wParam, lParam);
 }
 return true;
 }
 
 | 
 | 
| 04-20-2010 04:41 PM |  | 
|  | 
| SmokingCookie Senior Member
 
     
 
  
 Posts: 815
 Reputation: 15
 31 /
  /  Joined: Jul 2007
 
 | | O.P.  RE: [?] WM_MOUSEMOVE doesn't work Gotta admit that I'm absolutely rubbish at C++, but I'll give it a try... | 
 | 
| 04-20-2010 04:43 PM |  | 
|  | 
| matty Scripting Guru
 
      
 
 Posts: 8327
 Reputation: 109
 40 /
  /  Joined: Dec 2002
 Status: Away
 
 | | RE: [?] WM_MOUSEMOVE doesn't work It is simply saying to declare the event from within WM_MOUSEMOVE but not sure why it should matter... 
Anyways:
 quote:Originally posted by matty
 What about tracking WM_MOUSEMOVE and use GetCursorPos then use ChildWindowFromPoint comparing the hWnd of the control to that returned from the function?
 
 | 
 | 
| 04-20-2010 04:46 PM |  | 
|  | 
| SmokingCookie Senior Member
 
     
 
  
 Posts: 815
 Reputation: 15
 31 /
  /  Joined: Jul 2007
 
 | | O.P.  RE: [?] WM_MOUSEMOVE doesn't work Well, I've got my own version of ChildWindowFromPoint. But the entire problem is the "tracking WM_MOUSEMOVE": I am not receiving it at all. | 
 | 
| 04-20-2010 04:50 PM |  | 
|  | 
| matty Scripting Guru
 
      
 
 Posts: 8327
 Reputation: 109
 40 /
  /  Joined: Dec 2002
 Status: Away
 
 | | RE: [?] WM_MOUSEMOVE doesn't work quote:Originally posted by SmokingCookie
 Well, I've got my own version of ChildWindowFromPoint. But the entire problem is the "tracking WM_MOUSEMOVE": I am not receiving it at all.
 
 That has to be something in your code then.
 
Attachment is untested as I am at work but let me know.
 
Not sure if it will work because I think the x and y coordiniates are in relation to the window not the screen. If this is the case then change the subclass routine to
 js code:function OnwndSubclassEvent_MessageNotification(pPlusWnd, nMessage, wParam, lParam) {
 switch (nMessage) {
 case WM_MOUSEMOVE:
 var POINT = Interop.Allocate(8);
 Interop.Call('user32', 'GetCursorPos', POINT);
 
 var r = Interop.Call('user32', 'ChildWindowFromPointW', pPlusWnd.Handle, POINT);
 if (r !== null)
 Debug.Trace('i r on a control: '+r);
 
 return -1; // Process the message little one
 }
 }
 
  Attachment: WM_MOUSEMOVE.plsc (1.75 KB) This file has been downloaded 214 time(s).
 
 This post was edited on 04-20-2010 at 05:23 PM by matty.
 | 
 | 
| 04-20-2010 05:19 PM |  | 
|  | 
| SmokingCookie Senior Member
 
     
 
  
 Posts: 815
 Reputation: 15
 31 /
  /  Joined: Jul 2007
 
 | | O.P.  RE: [?] WM_MOUSEMOVE doesn't work Got bad news for ya: it does not work. No message notifications are received. 
Oh and btw:
 quote:Originally posted by MSDN article on WM_MOUSEMOVE
 Return Value
 
 If an application processes this message, it should return zero.
 
This post was edited on 04-20-2010 at 05:24 PM by SmokingCookie.
 | 
 | 
| 04-20-2010 05:23 PM |  | 
|  | 
| matty Scripting Guru
 
      
 
 Posts: 8327
 Reputation: 109
 40 /
  /  Joined: Dec 2002
 Status: Away
 
 | | RE: [?] WM_MOUSEMOVE doesn't work Check the update   | 
 | 
| 04-20-2010 05:24 PM |  | 
|  | 
| SmokingCookie Senior Member
 
     
 
  
 Posts: 815
 Reputation: 15
 31 /
  /  Joined: Jul 2007
 
 | | O.P.  RE: [?] WM_MOUSEMOVE doesn't work Nope, still the same | 
 | 
| 04-20-2010 05:25 PM |  | 
|  | 
| matty Scripting Guru
 
      
 
 Posts: 8327
 Reputation: 109
 40 /
  /  Joined: Dec 2002
 Status: Away
 
 | | RE: [?] WM_MOUSEMOVE doesn't work quote:Originally posted by SmokingCookie
 Oh and btw:
 
 
 quote:Originally posted by MSDN article on WM_MOUSEMOVE
 Return Value
 
 If an application processes this message, it should return zero.
 
 
 The -1 allows the window itself to process the message. The window will return 0.
 
I will investigate when I get home. This works fine with Screenshot Sender. | 
 | 
| 04-20-2010 05:28 PM |  | 
|  | 
| Pages: (4): 
« First
 
«
 
 1
 [ 2 ]
 3
 4
 
»
 
Last » | 
|  |