如题
我只在CButton类基础上重定义OnSetCursor()函数,就不见了光标。
我是初学者,请具体指点。

解决方案 »

  1.   

    OnSetCursor本来就是用做重新设置光标的图案,你重载后没有处理,因此就没有光标了。
    你必须要在这个函数里显示你自定义的光标图案,就行了。
      

  2.   

    重载这个函数,在这个函数中载入光标,然后让这个函数返回true!
    试一试!
      

  3.   

    如下:
    class CMyButton : public CButton
    {
    ...
    private:
    HCURSOR m_hCursor;
    ...
    };
    CMyButton::CMyButton()
    {
    m_hCursor = AfxGetApp()->LoadStandardCursor (IDC_CROSS);
    }BOOL CMyButton::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
    {
    if (nHitTest == HTCLIENT) {
    ::SetCursor (m_hCursor);
    return TRUE;
    }

    return CButton::OnSetCursor(pWnd, nHitTest, message);
    }
      

  4.   

    我是将光标句柄申明为static变量,然后LoadCursor()自绘的光标,在SetCursor(),就是不见光标。
      

  5.   

    重载函数OnSetCursor(),在这个函数中载入光标,然后让这个函数返回trueclass CMyButton : public CButton
    {
    ...
    private:
    HCURSOR m_hCursor;
    ...
    };
    CMyButton::CMyButton()
    {
    m_hCursor = AfxGetApp()->LoadStandardCursor (IDC_CROSS);
    }BOOL CMyButton::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
    {
    if (nHitTest == HTCLIENT) {
    ::SetCursor (m_hCursor);
    return TRUE;
    }

    return CButton::OnSetCursor(pWnd, nHitTest, message);
    }