CBasePropertyPage.OnReceiveMessage 方法
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 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);
}
}
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|