共用方式為


CBasePropertyPage.OnReceiveMessage 方法

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

當對話方塊收到訊息時,會 OnReceiveMessage 呼叫 方法。

語法

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

參數

hwnd

視窗的控制碼。

uMsg

Message.

wParam

第一個訊息參數。

lParam

第二個訊息參數。

傳回值

傳回布林值。 對話方塊程式會傳回此值;如需詳細資訊,請參閱平臺 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 類別