请教一个关于自己获取消息的问题
因为我的程序要在document类的一个成员函数类循环地处理数据,但同时要响应外界的消息。只要用户不关闭程序,程序就一直处理下去。所以我在函数里面用了自己获取消息的代码。(由于时间效率问题,我没有用定时器)。代码如下:
void CTestqqDoc::OnTest()
{
MSG msg;
BOOL fMessage;
PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE);
while(msg.message != WM_QUIT) // 消息循环
{
fMessage = PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE);
if( fMessage ) // 有消息
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
;// 处理任务
}
}
但现在的问题是,当我关闭程序时。窗口消失了,但程序没有结束。我跟踪了一下,程序根本就不能跳出循环,也就是说获取不到WM_QUIT消息。而且其他有一些消息也无法获取。
请问这是怎么回事呀?
void CTestqqDoc::OnTest()
{
MSG msg;
BOOL fMessage;
PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE);
while(msg.message != WM_QUIT) // 消息循环
{
fMessage = PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE);
if( fMessage ) // 有消息
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
;// 处理任务
}
}
但现在的问题是,当我关闭程序时。窗口消失了,但程序没有结束。我跟踪了一下,程序根本就不能跳出循环,也就是说获取不到WM_QUIT消息。而且其他有一些消息也无法获取。
请问这是怎么回事呀?
...全文
相关推荐
RocketMQ获取指定消息的实现方法(源码)
因此,当客户端需要查询指定的消息时,面临的一个核心问题是:客户端如何确定需要访问的broker节点以及如何在broker内部的CommitLog文件中准确定位到消息。
RocketMQ 的Rebalance机制,消息重复问题
所谓Rebalance到底在解决什么问题 Rebalance具体是如何决定分配的数量的 Rebalance是怎么对多Topic做分配 Rebalance什么时候触发 Rebalance可能会带来消息的重复消费
微信机器人,实时获取好友、群消息,拉取朋友圈数据
**Hook流程** - **消息hook**:为了实时获取好友和群聊的消息,需要找到微信存储和处理消息的代码段,然后hook这些点,当消息到达时,可以获取到消息内容并进行处理。4.
C# 获取另一窗体完整消息
而如果要获取另一个窗体的消息,我们通常需要使用底层的P/Invoke技术,调用Windows API函数来实现。
IBM MQ C++实例代码,连接MQ获取消息
**获取消息(Get Message)**:调用MQQueue的`get()`方法来从队列中获取消息。可能需要指定消息的选择器,以过滤获取特定的消息。9.


界面
