当我禁用桌面合成时,每当我将鼠标悬停在标签上时,我都会闪烁/闪烁。仅当禁用桌面合成时才会发生这种情况。我试图取消WM_ERASEBKGND消息,但它没有解决问题。这个问题的解决方案是什么?
这是我尝试用于MASM标签控件的示例。
http://www.dreamincode.net/forums/index.php?app=core&module=attach§ion=attach&attach_id=28600
bin已经编译完毕。
编辑:启用 WS_EX_COMPOSITED 标志并添加listview控件后,不会绘制listview的帧。仅当ListView类型设置为report时才会发生这种情况。
答案 0 :(得分:2)
使用扩展样式对话框中的 WS_EX_COMPOSITED 修复问题。
编辑: 编辑我的问题的修复方法是在Listview上使用 SetParent ,并将其作为父级而不是子对话框附加到主窗口。现在它正确显示了它的框架。
所以我觉得这个有问题
另一个对话框上的Listview - >使用 CreateDialogParam 将其附加到主对话框(Over选项卡控件)。 WS_EX_COMPOSITED 在标签控件
上设置<强>结果强>: 有XP绘图问题。非常迟钝。报告类型中listview的隐藏帧。正如问题编辑所见。
新方法 列表视图在另一个对话框上 - &gt;使用 CreateDialogParam 将其附加到主对话框(Over选项卡控件)。 WS_EX_COMPOSITED 也在选项卡控件和主对话框上设置。调用 SetParent 将列表视图与主对话框关联,作为其父级。
<强>结果强>: 非常顺利的绘图。 XP也没有问题。即使在禁用桌面组合时也没有闪烁。并将 WM_ERASEBKGND 保留为主对话框的默认值,并且不会自定义 WM_PRINT 处理。但只有子对话框DialogProc才需要 WM_ERASEBKGND 禁用,以便将返回设置为1。