Compartilhar via


Método CBasePropertyPage.OnReceiveMessage

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O OnReceiveMessage método é chamado quando a caixa de diálogo recebe uma mensagem.

Sintaxe

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

Parâmetros

hwnd

Identificador da janela.

uMsg

Message.

wParam

Primeiro parâmetro de mensagem.

lParam

Segundo parâmetro de mensagem.

Retornar valor

Retorna um valor booliano. O procedimento de caixa de diálogo retorna esse valor; para obter mais informações, consulte a documentação do SDK da plataforma.

Comentários

A implementação da classe base chama DefWindowProc. Substitua esse método para manipular mensagens relacionadas aos controles de caixa de diálogo. Se o método de substituição não manipular uma mensagem específica, ele deverá chamar o método de classe base.

Se o usuário alterar as propriedades por meio dos controles de caixa de diálogo, defina o sinalizador CBasePropertyPage::m_bDirty como TRUE. Em seguida, chame o método IPropertyPageSite::OnStatusChange no ponteiro CBasePropertyPage::m_pPageSite para informar o quadro.

Exemplos

O exemplo a seguir responde a um clique de botão atualizando uma variável de membro, que é considerada definida na classe derivada. Este exemplo também mostra uma função auxiliar para definir o sujo status da página de propriedades.

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 Valor
parâmetro
Cprop.h (incluir Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)

Confira também

Classe CBasePropertyPage