应用程序
WIN32 SDK 不注册窗口类,程序怎样取得系统消息?
比如系统空闲的消息,程序被其它程序关闭的消息,等等!

解决方案 »

  1.   

    我觉得没有窗口是不可能接收任何消息的。在Win32给出的框架中,消息是通过窗口过程来处理的,窗口过程与窗口通过WNDCLASS联系起来,所以如果你不进行窗口注册,消息路由函数Dispatch将无法知道把消息发给谁,也无法处理相应的消息。不过你也可以试试只使用
    while (GetMessage(&msg, NULL, 0, 0)) 
    {
    //DoSomething
    ……………………
    }不知道你为什么不注册窗口类。
      

  2.   

    使用消息钩子函数。http://hi.baidu.com/yulingkong
      

  3.   

    while(::GetMessage(&msg,NULL,0,0)){
    //根据消息做相应处理,不过你没创建窗口,窗口类消息你是接收不到了
    }
    所有的线程都有消息队列,不过工作线程只有在你需要消息队列的时候才建立起来,
    而且工作线程也可以建立窗口(包括顶层窗口)