WM_PowerBroadcast 메시지 MFC DLG에 잡히지 않았습니다
-
22-08-2019 - |
문제
시스템이 절전 모드로 들어갈 때 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으로 앱을 작성하고 있습니다. 내가 어디에 틀렸어?
해결책
메시지 맵에서
ON_MESSAGE( WM_POWERBROADCAST, OnPowerBroadcast )
구현
LRESULT CDialogDlg::OnPowerBroadcast(WPARAM wParam, LPARAM lParam)
{
switch (wParam)
{
case PBT_...
}
}
확인하십시오 MSDN WPARAM 값 주변의 일부 OS- 특이 사례.
다른 팁
제휴하지 않습니다 StackOverflow