一个很纠结的有关问题:怎么在按钮消息处理中显示一个进度条

一个很纠结的问题:如何在按钮消息处理中显示一个进度条?
MFC中,当进入一个按钮的消息处理函数中运行时,其他按钮都是不能操作的,自绘动画的控件也一样会停止运动,比如一个自绘图片的控件里是用定时器每隔一段时间画一个不同的图,但是在这个时候竟然也不动了,唉,这个进度显示怎么这么难呢?请高手指点下啊,万分感谢!

------解决方案--------------------
因为你阻塞了绘图线程。

把按钮的消息处理函数挪到单独一个线程去。
------解决方案--------------------
楼主这种情况典型的多线程要处理的问题;另外创建一个线程,把主窗体指针传入,在工作线程中实现你的绘图。
------解决方案--------------------
引用:
Quote: 引用:

那你可以在运行的过程中去调用下peekmessage

这个也不行的。我的代码是这样的:在对话框类里面一开始就创建一个线程,线程里面用GetDC()直接在对话框窗口上绘图;程序一开始运行这个绘图很正常的执行,窗口上能看到动态变化的图.然后我在对话框上的一个按钮的消息处理函数中用一句Sleep(100000);让这个按钮消息处理阻塞,这时候可以看到对话框上的图没有变化了。我尝试了在Sleep(100000)之前使用while(peekmessage(&msg,0,0,0,PM_REMOVE)){TranslateMessage(&msg);DispatchMessage(&msg);},这样依然没有任何效果。

这肯定没有任何效果
peekmessage的方案是针对比如你要处理循环类耗时操作
在每一次循环里调用一次peekmessage来相应界面消息
你Sleep在那面那么长时间
根本没去调用peekmessage
界面怎么响应