Freigeben über


CBasePropertyPage.OnReceiveMessage-Methode

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die OnReceiveMessage -Methode wird aufgerufen, wenn das Dialogfeld eine Nachricht empfängt.

Syntax

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

Parameter

hwnd

Handle zum Fenster.

uMsg

Message (Nachricht):

wParam

Erster Nachrichtenparameter.

lParam

Zweiter Nachrichtenparameter.

Rückgabewert

Gibt einen booleschen Wert zurück. Die Dialogprozedur gibt diesen Wert zurück. Weitere Informationen finden Sie in der Dokumentation zum Platform SDK.

Bemerkungen

Die Basisklassenimplementierung ruft DefWindowProc auf. Überschreiben Sie diese Methode, um Nachrichten zu behandeln, die sich auf die Dialogsteuerelemente beziehen. Wenn die überschreibende Methode keine bestimmte Nachricht verarbeitet, sollte sie die Basisklassenmethode aufrufen.

Wenn der Benutzer eigenschaften über die Dialogsteuerelemente ändert, legen Sie das Flag CBasePropertyPage::m_bDirty auf TRUE fest. Rufen Sie dann die IPropertyPageSite::OnStatusChange-Methode auf dem Zeiger CBasePropertyPage::m_pPageSite auf, um den Frame zu informieren.

Beispiele

Im folgenden Beispiel wird auf einen Schaltflächenklick reagiert, indem eine Membervariable aktualisiert wird, die in der abgeleiteten Klasse definiert wird. Dieses Beispiel zeigt auch eine Hilfsfunktion zum Festlegen der modifiziert status der Eigenschaftenseite.

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);
    }
}

Anforderungen

Anforderung Wert
Header
Cprop.h (include Streams.h)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CBasePropertyPage-Klasse