MFC Dlg 中未捕获 WM_POWERBROADCAST 消息
当系统进入睡眠模式时,我尝试捕获 WM_POWERBROADCAST 消息。
我正在这样做:
BOOL CPowManApp::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_POWERBROADCAST || pMsg->message == WM_POWER)
{
CString strMessage;
strMessage.Format(_T("%d WM_POWERB%s wParam %x lParam %x"),
pMsg->time,
pMsg->message == WM_POWER?_T(""):_T("BRAODCAST"),
pMsg->wParam,
pMsg->lParam);
OutputDebugString(strMessage);
}
return CWinApp::PreTranslateMessage(pMsg);
}
这根本行不通。 与此同时,win32 应用程序运行得很好。 我试图将消息处理程序放在 Dlg 类中,但没有成功。
我正在使用 VS6.0 构建应用程序。 我哪里错了?
I try to catch WM_POWERBROADCAST message when the system goes into sleep mode.
I'm doing like :
BOOL CPowManApp::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_POWERBROADCAST || pMsg->message == WM_POWER)
{
CString strMessage;
strMessage.Format(_T("%d WM_POWERB%s wParam %x lParam %x"),
pMsg->time,
pMsg->message == WM_POWER?_T(""):_T("BRAODCAST"),
pMsg->wParam,
pMsg->lParam);
OutputDebugString(strMessage);
}
return CWinApp::PreTranslateMessage(pMsg);
}
It simply doesn't work. Meanwhile a win32 app works just fine. I tried to put the message handler in the Dlg class in vain.
I'm building the app with VS6.0. Where am I wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在您的消息映射
实现
中,请务必检查 MSDN 对于 wParam 值周围的一些特定于操作系统的情况。
In your message map
Implementation
Be sure to check MSDN for some OS-specific cases around the wParam values.
此消息的文档特别说:
您是否尝试过在主窗口上覆盖此方法?
The documentation of this message specifically says:
Have you tried to overwrite this method on your main window?