对话框中有一组按钮,按下任何一个按钮,该按钮的颜色改变(按下的颜色),其他按钮都变回为没有被按下,即初始化的颜色
这个如何设计呢?给点路子,谢谢.

解决方案 »

  1.   

    CBitmapButton类,或者自绘CButton,处理DrawItem虚函数,MSDN上有个例子代码
      

  2.   

    参考MSDN文档,上面有例子代码~
      

  3.   


    CDC *dc=m_b1.GetDC();
    CRect rt1,rt2;
    m_b1.GetWindowRect(rt1);
    dc->Ellipse(0,0,rt1.Width(),rt1.Height());
    m_b1.ReleaseDC(dc);判断就自己写了吧!
      

  4.   

    cbuttonst绝对好用的,我刚用过
      

  5.   

    供参考:用的是静态控件,但按钮应该原理一样
    1)建立一个CStatic派生类
    2)重载OnPaint函数
    if(m_Click)
    {       
    dc.FillSolidRect(rect,RGB(0,0,255));//设置为点击背景色
    }
    else
    {   
    dc.FillSolidRect(rect,RGB(255,255,255));//设置为非点击背景色
    }
    3)在需要的地方动态创建静态控件
    4)手工添加单击消息映射宏 ON_CONTROL_RANGE(BN_CLICKED,ID_BUTTON1,ID_BUTTONn,OnButtonClicked)
    5)消息响应函数中
    pSC=(youbuttonClassname*)GetDlgItem(nID);
    pSC->m_Click=true;
    pSC->Invalidate(FALSE);
    pSC=(youbuttonClassname*)GetDlgItem(otherID);
    pSC->m_Click=false;
    pSC->Invalidate(FALSE);
    ....