再问PostMessage?
我在程序中定义了4个消息
#define WM_MYMSG_ch1 WM_USER+101
#define WM_MYMSG_ch2 WM_USER+102
#define WM_MYMSG_ch3 WM_USER+103
#define WM_MYMSG_ch4 WM_USER+104
重载了消息处理函数:
void __fastcall TFDownload::WndProc(Messages::TMessage &Msg)
{
if(Msg.Msg==WM_MYMSG_ch1)
{
proc1();
}
else if(Msg.Msg==WM_MYMSG_ch2)
{
proc2();
}
else if(Msg.Msg==WM_MYMSG_ch3)
{
proc3();
}
else if(Msg.Msg==WM_MYMSG_ch4)
{
proc4();
}
else
TForm::WndProc(Msg);
}
用
顺序发送了四个消息:
PostMessage(FDownload->Handle,WM_MYMSG_ch1, 0,0);
PostMessage(FDownload->Handle,WM_MYMSG_ch2, 0,0);
PostMessage(FDownload->Handle,WM_MYMSG_ch3, 0,0);
PostMessage(FDownload->Handle,WM_MYMSG_ch4, 0,0);
请问这4个消息在消息队列中是一个一个按顺序处理还是并行处理?
会不会存在当前消息正在处理就响应下一个消息,即两个消息同时 处理?怎么做才能保证只有当前消息处理完成的才能处理下一个消息?
[解决办法]
想要当前消息处理完成的才能处理下一个消息,请用SendMessage
[解决办法]