50分:关于图象拷贝的问题
我要实现的最终目的是:在一个图片框(大小调整为与一个组合框的高度为边长的正方形)里面 "画 "一个组合框的最左边那部分。
想到的方法一:画边框部分。但使用XP等主题与没有使用主题的情况下是不一样的,并且各种主题下可能会有微小差异,所以不知道怎么画。
想到的方法二:用BitBlt等拷贝。这似乎是最简单有效的办法了。但却有个无法回避的难题:当该组合框被其他程序的窗体覆盖的时候,则无法拷贝到组合框的“图象”。
各位,有什么办法解决这个问题吗?谢谢。
[解决办法]
建立内存DC,在内存中画好了,再BITBLT出来。
在图片框的Paint事件中重画
Bitblt Picture.hdc ......,mDC,...........
[解决办法]
没有完全理解.....
是不是需要把COMBO的一部分绘到某一个图片框里?而又要不断地绘?
如果是这样,又有几个情况:
一,COMBO画面一直不变.
如果是这样,那只需要在程序启动时,把COMBO的图象保存进另一个图片框就行了;
需要时再Paint出来;
二,需要动态地显示当前COMBO中的图象.(这个可能性大点,不然就直接画了,还复制什么)
这个就有点麻烦
我看是不是应该子类化拦截COMBO的绘制消息,然后从中取出内容同步到图片框....?
有点类似子类化更改控件外观的那种方法.....
游走......
[解决办法]
用 RedrawWindow 指定 ComboBox 的全部区域重绘,看看能否取得完整的图片