次の方法で共有


CBasePropertyPage.OnReceiveMessage メソッド

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

OnReceiveMessageダイアログ ボックスがメッセージを受信すると、 メソッドが呼び出されます。

構文

virtual INT_PTR OnReceiveMessage(
   HWND   hwnd,
   UINT   uMsg,
   WPARAM wParam,
   LPARAM lParam
);

パラメーター

hwnd

ウィンドウへのハンドル。

uMsg

Message.

wParam

最初のメッセージ パラメーター。

lParam

2 番目のメッセージ パラメーター。

戻り値

ブール値を返します。 ダイアログ プロシージャは、この値を返します。詳細については、プラットフォーム SDK のドキュメントを参照してください。

解説

基底クラスの実装は DefWindowProc を呼び出します。 ダイアログ コントロールに関連するメッセージを処理するには、このメソッドをオーバーライドします。 オーバーライドするメソッドが特定のメッセージを処理しない場合は、基底クラス メソッドを呼び出す必要があります。

ユーザーがダイアログ コントロールを使用してプロパティを変更する場合は、 CBasePropertyPage::m_bDirty フラグを TRUE に設定 します。 次に、CBasePropertyPage::m_pPageSite ポインターで IPropertyPageSite::OnStatusChange メソッドを呼び出して、フレームに通知します。

次の例では、派生クラスで定義されているものと見なされるメンバー変数を更新することで、ボタンのクリックに応答します。 この例では、プロパティ ページのダーティ状態を設定するためのヘルパー関数も示します。

INT_PTR CMyProp::OnReceiveMessage(HWND hwnd,
  UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
    case WM_COMMAND:
        if (LOWORD(wParam) == IDC_BUTTON1)
        {
            m_lNewVal = GetDlgItemInt(m_Dlg, IDC_EDIT1, 0, TRUE);
            SetDirty();
            return (INT_PTR)TRUE;
        }
        break;
    } // switch

    // Did not handle the message.
    return CBasePropertyPage::OnReceiveMessage(hwnd, uMsg, wParam, lParam);
}

// Helper function to update the dirty status.
void CMyProp::SetDirty()
{
    m_bDirty = TRUE;
    if (m_pPageSite)
    {
        m_pPageSite->OnStatusChange(PROPPAGESTATUS_DIRTY);
    }
}

要件

要件
ヘッダー
Cprop.h (Streams.h を含む)
ライブラリ
Strmbase.lib (製品版ビルド);
Strmbasd.lib (デバッグ ビルド)

関連項目

CBasePropertyPage クラス