我自绘了 CSliderCtrl 类,里面响应的是 void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);怎么让重新这个控件自绘呢?或者说重新把背景刷新一次.
我用了  控件变量名.Invalidate(),发送 WM_PAINT控件好象会重绘背景,但是控件那个条子,那个拉动bar没有了...如果控件消息响应那里增加了 ON_WM_APINT(),会导致 OnCustomDraw 这个函数不响应...

解决方案 »

  1.   

    http://www.codeproject.com/KB/miscctrl/CustomDrawCSliderCtrl.aspx
      

  2.   

    这个demo我看过,那个demo是讲如何自绘我的问题是,我已经自绘了我主程序背景变动的.他得跟到换背景那个demo 在drawchannel里面,有个判断把背景存下来,以后用我已经把那个判断值改变了,还是不行...根本运行不到那个函数里面去
      

  3.   

    这个控件很不给力的,
    1. pre-paint no comment~
    2. item-prepaint 进入绘画
    先画刻度
    顶点:(1241464,2090001523),大小(2010934880,-2088760183)
    再画滑道
    顶点:(5,13),大小(161,4)
    最后画滑标   <-------------------------这里,滑标有大小限制,画多了都给你截掉
    顶点:(5,10),大小(5,11)
    3.item-post-paint no comment~
    最后修整滑标
    顶点:(5,10),大小(5,11)第二个恶劣的地方,就是当你拖动滑标的时候,它只重绘滑标,不会重绘滑道,如果你想做出两张PNG图片层叠的特殊效果,唉,那是不可能的,这样的话,公司里面的美工,怎配合你?总不能纯CODE把效果做出来吧,在生产上得浪费多少时间?