C++ 防止MFC应用程序将光标更改回默认图标

C++ 防止MFC应用程序将光标更改回默认图标,c++,windows,user-interface,mfc,C++,Windows,User Interface,Mfc,我已经编写了一个应用程序,它根据光标在窗口客户端区域中的位置来更改光标。但是我注意到,当我点击鼠标左键时,光标变回默认的箭头图标 我已经重写了afx\u msg void CWnd::OnLButtonDown(),并且没有调用其中的任何基类函数(它是完全空的) 知道什么会导致CDialogEx将光标更改回原来的位置吗?如何处理左键单击消息?通常,您需要覆盖OnSetCursor(),如果鼠标位于需要特定光标的位置,则调用SetCursor()并返回TRUE,以便DefWindowProc不会将

我已经编写了一个应用程序,它根据光标在窗口客户端区域中的位置来更改光标。但是我注意到,当我点击鼠标左键时,光标变回默认的箭头图标

我已经重写了
afx\u msg void CWnd::OnLButtonDown()
,并且没有调用其中的任何基类函数(它是完全空的)


知道什么会导致
CDialogEx
将光标更改回原来的位置吗?如何处理左键单击消息?

通常,您需要覆盖
OnSetCursor()
,如果鼠标位于需要特定光标的位置,则调用
SetCursor()
并返回
TRUE
,以便
DefWindowProc
不会将其重置为默认箭头。

通常,您需要覆盖
OnSetCursor()
,如果鼠标位于需要特定光标的位置,您可以调用
SetCursor()
并返回
TRUE
,以便
DefWindowProc
不会将其重置回默认箭头。

您没有显示太多代码,现在还不清楚你在做什么或者你在追求什么。从重载
OnSetCursor()
开始,我或多或少地尝试编写自己的窗口管理器,类似于MDI MFC应用程序,因此我在对话框中绘制自己的窗口,并尝试模拟光标的标准光标行为。然而,仅仅设置irght类型的光标是不够的。你给了我一个很好的指导,而且我相信热点区域测试也是我需要考虑的事情。你没有展示太多的代码,不清楚你在做什么或你在追求什么。从重载
OnSetCursor()
开始,我或多或少地尝试编写自己的窗口管理器,类似于MDI MFC应用程序,因此我在对话框中绘制自己的窗口,并尝试模拟光标的标准光标行为。然而,仅仅设置irght类型的光标是不够的。你给了我一个很好的方向,而且我相信热点区域测试也是我需要考虑的事情。