vc有没有象delphi一样的Application.ProcessMessages的方法呀,该如何解决
vc有没有象delphi一样的Application.ProcessMessages的方法呀
各位大侠,小弟初用vc,遇到一难题呀.
在开发的一个硬件通讯函数时,因为硬件处理限制,在过程中需要有几次等待1分钟左右,请问有没有方法能刷新主窗体呀.
我这个是作成DLL的形式,我不希望在这个等待中,因为我的等待使得客户程序失去响应呀
在程序的等待中是WaitFor(60000);
void WaitFor(int WaitTime)
{
long tmp=0;
while (tmp <(WaitTime*20)))
{
UpdateWindow();
tmp++;
}
}
呵呵,这样还是只能刷新自己呀
------解决方案--------------------
在dll里获取主程序的窗口handle,或者在dll里写个函数让主程序把它的窗口句柄传过来,让后用这个handle去画。单独开个线程去等也是可以的,但是要解决同步的问题。
------解决方案--------------------
Application.ProcessMessages就是WinMain里面的主循环:
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
不过你要加判断以使这个循环能按你要求退出。
各位大侠,小弟初用vc,遇到一难题呀.
在开发的一个硬件通讯函数时,因为硬件处理限制,在过程中需要有几次等待1分钟左右,请问有没有方法能刷新主窗体呀.
我这个是作成DLL的形式,我不希望在这个等待中,因为我的等待使得客户程序失去响应呀
在程序的等待中是WaitFor(60000);
void WaitFor(int WaitTime)
{
long tmp=0;
while (tmp <(WaitTime*20)))
{
UpdateWindow();
tmp++;
}
}
呵呵,这样还是只能刷新自己呀
------解决方案--------------------
在dll里获取主程序的窗口handle,或者在dll里写个函数让主程序把它的窗口句柄传过来,让后用这个handle去画。单独开个线程去等也是可以的,但是要解决同步的问题。
------解决方案--------------------
Application.ProcessMessages就是WinMain里面的主循环:
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
不过你要加判断以使这个循环能按你要求退出。