我正在尝试通过处理CStatic来更改OnSetCursor派生类中的光标

class CMyStatic : public CStatic
{
    // ....
};

BEGIN_MESSAGE_MAP(CMyStatic, CStatic)
    ON_WM_SETCURSOR()
END_MESSAGE_MAP()

BOOL CMyStatic::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
    TRACE(_T("OnSetCursor\n"));
    SetCursor(AfxGetApp()->LoadStandardCursor(IDC_CROSS));
    return TRUE;
}

每次我移动鼠标都会调用OnSetCursor,但光标不会改变。我究竟做错了什么?

最佳答案

使用:: SetCursor。或者,您可以在其他任何地方调用一次SetCursor,而不捕获WM_SETCURSOR,并且光标将自动设置。

您使用的CWnd::SetCursor用于为窗口设置光标,如果您不覆盖OnSetCursor,则将使用该光标。也就是说,OnSetCursor的默认行为是通过调用CWnd::SetCursor来调用:: SetCursor,并将光标设置为一个。

关于c++ - 无法更改光标(从OnSetCursor内部),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10205064/

10-13 04:37