如何在VC的大循环(或死循环)中响应其他消息,如同BCB(Borland C++ Builder)和Borland Delphi中的Application.ProcessMessages; // 让其他控件能获取消息
BCB中,ProcessMessages的作用就是从消息队列中取得消息,然后发送给窗口过程。在VC中也可以这样做,编一个与ProcessMessages相似的函数,具体的就是,先用PeekMessage取得消息,然后再DispatchMessage发送给窗口过程,这只是最简单的。另外:TranslateMessage和IsDialogMessage可以参考。 在循环中加入以下程序可以实现响应消息的功能:
MSG message;
if(::PeekMessage (&message,NULL,0,0,PM_REMOVE))
{
::TranslateMessage (&message);
::DispatchMessage (&message);
}
另外,在大循环中,响应消息一般还可以用守侯系统内核事件(Event,Mutex,Semaphore)的方法。
BCB中,ProcessMessages的作用就是从消息队列中取得消息,然后发送给窗口过程。在VC中也可以这样做,编一个与ProcessMessages相似的函数,具体的就是,先用PeekMessage取得消息,然后再DispatchMessage发送给窗口过程,这只是最简单的。另外:TranslateMessage和IsDialogMessage可以参考。 在循环中加入以下程序可以实现响应消息的功能:
MSG message;
if(::PeekMessage (&message,NULL,0,0,PM_REMOVE))
{
::TranslateMessage (&message);
::DispatchMessage (&message);
}
另外,在大循环中,响应消息一般还可以用守侯系统内核事件(Event,Mutex,Semaphore)的方法。