如何为儿童控件绘制透明区域?

时间:2009-05-11 13:29:31

标签: windows mfc transparency tabcontrol paint

我有一个CTabCtrl子类,我正在尝试重写WM_PAINT来执行自定义绘图。唯一的问题是,当我更改选定的选项卡时,我在对话框中留下了一些文件,在新的代码绘制在顶部之前,旧的油漆代码尚未被删除。 (标准选项卡控件使选定的选项卡显示比未选中的选项卡大2个像素,因此当您从选定选项卡更改为非选定选项卡时,将留下以前的绘制工件)。

“重画”这个区域的最佳方法是什么?我已经尝试将父控件的DC和BitBlt加到孩子的DC上,但是这不起作用,因为父DC已经包含了这个控件的图像。

1 个答案:

答案 0 :(得分:2)

您是否也覆盖了WM_ERASEBACKGROUND消息?您可能应该这样做并擦除控件中的区域。

如果您不想替换所有绘图逻辑,可以使用DrawThemeParentBackground绘制背景(XP及更高版本)。