我在对话框程序DialogBox中响应WM_ERASEBKGND贴背景图,然后我想在WM_PAINT中响应(或者是其他地方??)贴人物图,然后在WM_KEYDOWN中响应,不知道思路对不对?
人物大约是32*32的,问题是怎么把人物背景色变为透明的(白色区域)??

解决方案 »

  1.   

    BitBlt可以设置掩色。。
    也可以用DirectDraw来做。。
    http://blog.csdn.net/harry330/archive/2010/02/08/5299065.aspx
      

  2.   

    最好在DrawItem这个虚函数中贴图
      

  3.   

    http://topic.csdn.net/t/20000611/19/11505.html这是透明贴图部分!个人觉的思路没有问题,注意WM_KEYDOWN消息响应中,你做出相应的操作后,刷新一下!
    另外,推荐缓冲画图,不然,闪的很厉害!
      

  4.   

    用TransparentBlt贴图。
    另外,也可以把人物设计成Icon,用DrawIcon绘制。
      

  5.   

    建议
    WM_ERASEBKGND中返回true
    所有的贴图工作都放WM_PAINT
      

  6.   

    双缓存我知道,我想问下一般怎么在wm_keydown中响应WM_PAINT重绘呢。
      

  7.   


    用INVALIDATERECT背景也没了
      

  8.   

    ohoh~~~~~~~~好像可以了,然后我怎么传递呢(怎么通过响应不同的按键做不同的PAINT呢)
      

  9.   

    原来也是这种方法啊我早上定义了个int型全局变量(姑且叫做iPaint吧),通过按键更改iPaint的值,在WM_PAINT中switch(iPaint),但是被人说不是一般的丑。伤心了,求解牛人方法