消息队列是 RegisterClass 的时候产生的吗

谁学逆向工程 2017-07-13 07:18:11
描述1:
在《Windows程序设计》第五版中,他的套路是这样的:
WinMain(.......)
{
WNDCLASS;
RegisterClass;
CreateWindow;
while( GetMessage() )
{
}
}

在这种套路中有个消息队列的东西
问题1:消息队列是在什么函数执行后产生的


描述2:
如果在 WinMain 中只有一行代码:
int a=123;

问题2:进程中还有消息队列吗


描述3:
现在我需要一个没有窗口的程序,需要每妙执行60次的程序,如果没有消息队列,似乎就不能用 WM_TIMER 消息。
问题3:这个要如何实现。不要隐藏窗口之类的方案。
...全文
169 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
建筑师 2017-07-15
  • 打赏
  • 举报
回复
跟踪一下看看
这不是鸭头 2017-07-15
  • 打赏
  • 举报
回复
Windows的应用程序是消息驱动的。整个程序就是一个无限循环
春风醉 2017-07-15
  • 打赏
  • 举报
回复
回答问题一: 关键是这部分代码 while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } 这部分代码,让程序加入到消息循环之中。能够接收到windows的消息。大概就是这个意思,我说得很口语。 回答问题二:没有。因为你的程序里没有这部分的控制,所以就没有。程序自己不会凭白做,实际上是你要把那部分的代码写出来了,它才会做。 回答问题三:所谓windows编程,就是围绕窗口的,没有窗口的编程,就是控制台程序,也就是DOS程序。这个你应该会做吧!
sumos 2017-07-15
  • 打赏
  • 举报
回复
多媒体定时器
sdghchj 2017-07-14
  • 打赏
  • 举报
回复
windows的每个线程都可以有一个消息队列,是在PostThreadMessage函数第一次调用后生成的。 PeekMessage非阻塞地从线程中取消息,用它来轮询取消息。 while(真){ sleep(1000/60) to do what you want }

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧