一个服务会向已注册的激活窗口发送,如何不激活的时候也接收到消息。
具体:就是那个服务会把消息发到注册接收这个消息的窗口,这个窗口要在最前面(激活),不是在最前面就不可以,如果能在这个窗口不是最前面的时候也可以捕获到这个消息~~~~~~~

解决方案 »

  1.   

    我向一个CDialog类发送自定义消息,我不把CDialog显示出来(domodal),这个消息在CDialog中就没接收到....
      

  2.   

     int  CDialog::DoModal()  
     {  
       ......  读入资源,并作一些设置  
       if  (CreateDlgIndirect(lpDialogTemplate,  
                 CWnd::FromHandle(hWndParent),  hInst))  //创建无模式对话框  
         {  
           if  (m_nFlags  &  WF_CONTINUEMODAL)  
           {  
             //  enter  modal  loop  
             DWORD  dwFlags  =  MLF_SHOWONIDLE;  //罪魁祸首就是他  
             if  (GetStyle()  &  DS_NOIDLEMSG)  
               dwFlags  |=  MLF_NOIDLEMSG;  
             VERIFY(RunModalLoop(dwFlags)  ==  m_nModalResult); //进入消息循环  
           }  
      
       .......  
         }  
       }  
       ......  释放资源等  
     }  
     原来,DoModal  并不使用  DialogBox  直接调出对话框,而是通过创建无模式对话框并维护消息循环的方式(RunModalLoop)来模拟模式对话框的效果。
    你窗口都没有创建,这么接受消息