对一个控件,我想使他当鼠标移动到它上面时能改变颜色。
应该怎么做?

解决方案 »

  1.   

    其实就是控件的子类化啦!就是截取控件的MOUSEENTER和MOUSELEVEL消息,然后安排自己的代码。楼上这位说的也不错,使用专门的控件更省心一些,不过我想你应该知道是什么道理,还要能修改它的代码。这样你才真正知道你所提问题的答案了。推荐看《WINDOW程序设计》一书,上面有详细介绍。
      

  2.   

    麻烦  唐明  帮我讲解一下 怎么样来截取 mouseenter 和 mouselevel 消息。
      

  3.   

    1 设置CStatic控件背景:
    (1).从CStatic派生一个类CMyStatic;
    (2).添加成员变量CBrush m_Brush;
    (3).
    CMyStatic::CMyStatic()
    {
    m_Brush.CreateSolidBrush(RGB(197,200,208));
    }
    (4)响应=WM_CTLCOLOR消息:
    HBRUSH CMyStatic::CtlColor(CDC* pDC, UINT nCtlColor) 
    {
    // TODO: Change any attributes of the DC here pDC->SetTextColor(RGB(0,0,0));
    pDC->SetBkMode(TRANSPARENT);  // TODO: Return a non-NULL brush if the parent's handler should not be called
    return (HBRUSH)m_Brush;
    }
      

  4.   

    find in this page:
    http://www.vckbase.com/code/listcode.asp?mclsid=3&sclsid=301