假如现在有很多按钮,我要实现:
1:鼠标在按钮上时改变为不同的鼠标形状。
2:改变按钮的效果图。
问:
1:能否在OnSetCursor事件中只调用SetCursor函数,而不用判断是那个按钮。也就是说,能否初始化设置来达到这个效果。
2:按钮的效果图,是在什么事件中可以达到?(我查找VC建立的单文档工具栏,有效果,却没发现在那里实现的)

解决方案 »

  1.   

    自己写一个按钮类.再处理WM_SETCURSOR消息.
    然后子类化.
      

  2.   

    响应WM_SETCURSOR
    BOOL CDRAWView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
    { char* cursor;
             cursor = (char*)IDC_TXT;//你自己画的cursor的ID
    ::SetCursor(AfxGetApp()->LoadCursor(cursor));
    return true;
    return CView::OnSetCursor(pWnd, nHitTest, message);
    }
      

  3.   

    thisisll(速度八十迈),按你的写法,如何判断是那个按钮的事件呢?这样才可以读取相应cursor的ID啊!
      

  4.   

    ydfivy(我就是一送外卖的),我就是自己写了一个按钮类啊,但是涉及到子类化这块,该怎么写啊?
      

  5.   

    比如你有一个CMYBUTTON的类.
    CMYBUTTON m_MyButton.
    m_MyButton.SubclassDlgItem(IDC_BUTTON/*你要连接的按钮ID*/, this);//加在ONINITDIALOG
      

  6.   

    ydfivy(我就是一送外卖的),这样写,感觉没有发生什么重大作用啊!
      

  7.   

    2.OwnerDraw按钮
    参考CBitmapButton的实现