对话框上又两个控件,一个static控件SS_BITMAP属性,用来绘图(canvas),一个static控件SS_BITMAP属性,用来显示图片(tool),tool和canvas有重叠部分,为了使canvas在刷新后不至于消失,我在OnPaint中采用双缓冲绘图方式刷新内容。可以刷新之后,tool与canvas重叠的部分变成canvas被覆盖的内容了,tool缺了一块。
创建tool的时候指定了WS_CLIPCHILDREN属性,但是tool不是被父窗口绘图遮盖,而是被兄弟控件遮盖,所以采用了折衷的方案:不要canvas控件了,改用RECT记录本应绘图的区域,然后直接在父窗口上绘图。tool控件就不会被覆盖了
但是如果需要经常绘图,最好给canvas的属性添加WS_CLIPSIBLINGS,这样canvas画图时就不会画canvas的兄弟控件覆盖的地方了。