Método CBasePropertyPage.OnReceiveMessage

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Se OnReceiveMessage llama al método cuando el cuadro de diálogo recibe un mensaje.

Sintaxis

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

Parámetros

hwnd

Identificador de la ventana.

uMsg

Message.

wParam

Primer parámetro del mensaje.

lParam

Segundo parámetro del mensaje.

Valor devuelto

Devuelve un valor booleano. El procedimiento de diálogo devuelve este valor; para obtener más información, consulte la documentación del SDK de plataforma.

Observaciones

La implementación de clase base llama a DefWindowProc. Invalide este método para controlar los mensajes relacionados con los controles de diálogo. Si el método de invalidación no controla un mensaje determinado, debe llamar al método de clase base.

Si el usuario cambia las propiedades a través de los controles de diálogo, establezca la marca CBasePropertyPage::m_bDirtyen TRUE. A continuación, llame al método IPropertyPageSite::OnStatusChange en el puntero CBasePropertyPage::m_pPageSite para informar al marco.

Ejemplos

En el ejemplo siguiente se responde a un clic de botón mediante la actualización de una variable miembro, que se supone que se define en la clase derivada. En este ejemplo también se muestra una función auxiliar para establecer el estado de desfasado de la página de propiedades.

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

Requisitos

Requisito Value
Encabezado
Cprop.h (include Streams.h)
Biblioteca
Strmbase.lib (compilaciones comerciales);
Strmbasd.lib (compilaciones de depuración)

Consulte también

CBasePropertyPage (clase)