本帖最后由 xianglitian 于 2010-06-01 15:14:29 编辑

解决方案 »

  1.   

    GetDlgitem(IDC_FGCOLOR_STATIC)->Invalidate();//想刷新改变颜色,但是不成功
    这句直接
    Invalidate();
      

  2.   

    OnCtlColor里设置个断点看看 有没有运行进入另外hbrEdit 是个静态量,只会初始化一次,所以修改m_fg_color是没有什么用的
    建议类里放一个CBrush变量, 修改颜色的时候操作这个变量
      

  3.   

    谢谢,我将hbrEdit修改为非静态变量,即局部变量就好了,可是我还是没想明白是怎么回事,
    按道理说函数内的局部变量一出了函数就没了,为什么可以return呢?
      

  4.   

    没错
    应该这样
    static HBRUSH hbrEdit  = ::CreateSolidBrush(m_fg_color);
    hbrEdit  = ::CreateSolidBrush(m_fg_color);