重绘了一个button ,在对话框中点击了radio button时候使它无效,此时按钮的外观没有发生变化。
如何使按钮外观发生变化,(也就是能够达到vc默认按钮的那种效果)。 谢谢了。

解决方案 »

  1.   

    重绘是怎么重绘的?  EnableWindow(false) 试了没啊
      

  2.   

    重绘用drawitem 实现。
    EnableWindow(false) 试了,它只能使按钮无效,不能改变外观啊。问:点击了radio button时候 怎么样能使按钮再次发生重绘
      

  3.   

     点击radio button的时候,  给你想改变外观的按钮设置另外1张图片不可以吗?  按钮重绘 在很多时候都发生, 点击, 鼠标飘过, 等等
      

  4.   

    button 和 radio button 不是同一个button 。点击一个按钮如何使另一个按钮发生重绘?
      

  5.   

    你可以sendmessage 重回消息 给你想要重绘的按钮
      

  6.   

    看看这篇文章会不会对你有帮助
    http://blog.csdn.net/xianglitian/archive/2007/08/06/1728242.aspx
      

  7.   

    先谢谢zzz_zou耐心的给我讲解
    GetDlgItem(IDC_SCI_FE)->SendMessage(WM_DRAWITEM,0,0);
    点击按钮时 为什么会报can't read错误!
    不知道sendmessage如何发送
      

  8.   

    InvalidateRect(GetDlgItem(IDC_SCI_FE));
    试试……
      

  9.   

    可以使用两种不同状态的图片吧正常显示的时候有一种你点击ridio button的时候就载入令一种到msdn找找好像有个可以动态载入Bitmap图的Api函数的
      

  10.   

    那你OnDrawItem中有没有绘制按钮无效外观的代码:
    照说你执行GetDlgItem(IDC_SCI_FE)->EnableWindow(false)时OnDrawItem应该收到消息的,这时你判断消息ID来重绘不可以吗?
    不行你在复选按钮单击代码中发送:
    GetDlgItem(IDC_SCI_FE)->SendMessage(WM_DRAWITEM,无效重绘消息ID,0)
    也应该触发OnDrawItem吧