CBasePropertyPage.OnReceiveMessage 方法

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

OnReceiveMessage 对话框收到消息时,将调用 方法。

语法

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

参数

hwnd

窗口的句柄。

uMsg

消息。

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 类