快速图片更新导致MFC中的按钮单击无响应

快速图片更新导致MFC中的按钮单击无响应,mfc,Mfc,我有一个基于MFC对话框的应用程序,带有图片控件和对话框上的一些按钮。我使用以下方式注册按钮: 单击时(IDC按钮开始,单击按钮开始); 如果我使用StretchBlt()以每秒10到30张图片的速度更新OnPaint()中的图片,这是由于在工作线程中调用Invalidate()而触发的,那么按钮单击将停止响应。 有办法绕过这个吗?谢谢。Invalidate不应该这样做,因为它只在消息队列为空时生成WM\u PAINT消息。你确定你没有使用重画窗口?仔细想想,让主线程以外的任何线程与窗口交互都是

我有一个基于MFC对话框的应用程序,带有图片控件和对话框上的一些按钮。我使用以下方式注册按钮: 单击时(IDC按钮开始,单击按钮开始); 如果我使用StretchBlt()以每秒10到30张图片的速度更新OnPaint()中的图片,这是由于在工作线程中调用Invalidate()而触发的,那么按钮单击将停止响应。
有办法绕过这个吗?谢谢。

Invalidate
不应该这样做,因为它只在消息队列为空时生成
WM\u PAINT
消息。你确定你没有使用
重画窗口
?仔细想想,让主线程以外的任何线程与窗口交互都是一个坏主意,会导致悲伤。让线程将自定义消息发布到窗口,该窗口可以在消息处理程序中调用
Invalidate
。谢谢标记。我现在明白了。这是由于图片控件捕获了焦点。我会接受你的建议,调用Invalidate()。非常感谢。Bin请为您的
WM_PAINT
处理程序提供代码
StretchBlt
总是一个候选项,很容易导致资源泄漏。