WTL中virtual DLGPROC GetDialogProc() 

return CMainDlg::DialogProc; 
}  static INT_PTR CALLBACK DialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) 

CMainDlg* pThis = (CMainDlg*)hWnd; 
if (uMsg == WM_POWERBROADCAST) 

return BROADCAST_QUERY_DENY;
} return CDialogImpl <CMainDlg>::DialogProc(hWnd,uMsg,wParam,lParam); 
} 要求实现系统禁止待机.谢谢!

解决方案 »

  1.   

    不用BROADCAST_QUERY_DENY; 也行,只要实现系统禁止待机就行.谢谢啦啦!
      

  2.   

    我在想把BROADCAST_QUERY_DENY  Send给谁?不知道Send给谁也不知道好有不好用.大家还有什么思路?
      

  3.   

    应该可以啊,在return BROADCAST_QUERY_DENY; 处设上断点,看是否截获到此消息。
      

  4.   

    截获到此消息了,BROADCAST_QUERY_DENY就是不好用.系统还能进行待机.
     
    if((DWORD)wParam==PBT_APMSUSPEND) 
        ::MessageBox(0,"Sleep","休眠",MB_OK);  

      

  5.   

    而且还不应该是我机器的问题,我用MFC写了一个
    LRESULT CMytestDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
    {
    if(message  ==WM_POWERBROADCAST) 

       return BROADCAST_QUERY_DENY;
    } return CDialog::WindowProc(message, wParam, lParam);
    }
    这就好用.
    郁闷!!!!!!!!!!
      

  6.   

    最后用他解决了,或许用他也是最好的办法
    SystemParametersInfo