0

システムがスリープ モードに入ったときに 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でアプリを構築しています。どこが間違っていますか?

4

2 に答える 2

0

このメッセージのドキュメントには、具体的にのように記載されています。

ウィンドウは、その WindowProc 関数を通じてこのメッセージを受け取ります。

メイン ウィンドウでこのメソッドを上書きしようとしましたか?

于 2009-05-15T10:04:19.767 に答える