WM_LBTNDOWN and WM_NCHITTEST Problem
Guess who.... -- guess@ingress1.ingress.com Thursday, May 30, 1996 Windows NT 3.51 - MFC 4.1 I originally wrote a program using Windows 95. One of the classes based on CStatic was starting a drag & drop operation on WM_LBUTTONDOWN (not sure if I spelled that right). After being fed up with Win95 crashes, I moved up to Windows NT 3.51 and now none of those events arive. While using Spy++, the only mouse events that that window is getting is WM_NCHITTEST, for both mouse movements and Button clicks. Can somebody please give me any idea on fixing this. Timur
Dean McCrory -- deanm@microsoft.com Sunday, June 02, 1996 [Mini-digest: 3 responses] Guess, This is because NT returns HTNOWHERE from WM_NCHITTEST for static controls. That keeps the mouse messages from happening. If you want 'em, you should probably return HTCLIENT from WM_NCHITTEST in your subclass. // Dean -----From: Christophe NasarreAs far as I know, CStatic is wrapping a STATIC window. Since this particular class returns HTTRANSPARENT to WM_NCHITTEST message, it is clear that it will never get a button mouse message : its parent will get it. So, if you want your CStatic to get WM_LBUTTONDOWN message, you have to also handle WM_NCHITTEST message and return something like HTCLIENT for example --> you will get mouse button messages. Good luck -- a poor lonely frenchie -- -----From: Wolfgang Loch So far I understand you, you have derived the CYourStatic class from CStatic and subclassed the Object by means of SubclassDlgItem or DDX_Control. In this case you should handle the WM_LBUTTONDOWN - message in the CYourStatic class, not in the dialog box. Wolfgang
| Вернуться в корень Архива |