Metodo CBasePropertyPage.OnReceiveMessage
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Il OnReceiveMessage
metodo viene chiamato quando la finestra di dialogo riceve un messaggio.
Sintassi
virtual INT_PTR OnReceiveMessage(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
Parametri
-
Hwnd
-
Handle nella finestra.
-
Umsg
-
Message.
-
wParam
-
Primo parametro del messaggio.
-
lParam
-
Secondo parametro del messaggio.
Valore restituito
Restituisce un valore booleano. La procedura di dialogo restituisce questo valore; per altre informazioni, vedere la documentazione di Platform SDK.
Commenti
L'implementazione della classe base chiama DefWindowProc. Eseguire l'override di questo metodo per gestire i messaggi correlati ai controlli della finestra di dialogo. Se il metodo di override non gestisce un messaggio specifico, deve chiamare il metodo di classe base.
Se l'utente modifica le proprietà tramite i controlli della finestra di dialogo, impostare il flag CBasePropertyPage::m_bDirty su TRUE. Chiamare quindi il metodo IPropertyPageSite::OnStatusChange nel puntatore CBasePropertyPage::m_pPageSite per informare il frame.
Esempio
L'esempio seguente risponde a un pulsante facendo clic aggiornando una variabile membro, che si presuppone che sia definita nella classe derivata. Questo esempio mostra anche una funzione helper per impostare lo stato sporco della pagina delle proprietà.
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);
}
}
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|