要求:鼠标移到标签上时,标签上的文字放大加粗,鼠标移开时,文字恢复原样。请给出具体的代码。
目前的困难有二:
1、在于标签上的文字不知道怎么擦除(,标签启用了背景透明,而标签下(窗体背景)是一张画,而非均匀一致的背景色(所以不能用背景色重写一遍的方法擦除)。
2、如何响应鼠标移入和移出事件

解决方案 »

  1.   

    子类化
    CWnd::SetFont();
    添加处理WM_MOUSEHOVER消息和WM_MOUSELEAVE消息
      

  2.   


    1、这种方法处理的效果就是原先的字体不能擦除,两个叠在一起有重影
    2、MOUSEHOVER和MOUSELEASE消息没有看到,怎么添加(我用的是VC6.0)能给段代码么?
      

  3.   

    在设置之前先InvalidateRect();UpdateWindow()强制刷新一下
    afx_msg LRESULT OnMouseHover(WPARAM, LPARAM)
    afx_msg LRESULT OnMouseLeave(WPARAM, LPARAM)ON_MESSAGE(WM_MOUSEMOVE, OnMouseHover)
    ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
    需添加WM_MOUSEMOVE消息
    http://wenku.baidu.com/view/a946e0878762caaedd33d4d5.html
      

  4.   

    在设置之前先InvalidateRect();UpdateWindow()强制刷新一下
    afx_msg LRESULT OnMouseHover(WPARAM, LPARAM)
    afx_msg LRESULT OnMouseLeave(WPARAM, LPARAM)ON_MESSAGE(WM_MOUSEMOVE, OnMouseHover)
    ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
    需添加WM_MOUSEMOVE消息
    http://wenku.baidu.com/view/a946e0878762caaedd33d4d5.html
      

  5.   


    资料我下了,也照着上面的方法做了。编译也通过。但是有个问题,在OnMouseMove中用的
    ::TrackMouseEvent(&tme); //注册发送消息
    并不奏效。我注意到添加的处理WM_MOUSEHOVER消息和WM_MOUSELEAVE消息的响应程序OnMouseHove和OnMouseLeave没有被调用,估计是没有发送消息成功。希望能给段完整的测试代码。