Bagikan melalui


Metode CBasePropertyPage.OnReceiveMessage

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine dan Audio/Video Capture di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Metode OnReceiveMessage ini dipanggil ketika kotak dialog menerima pesan.

Sintaks

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

Parameter

hwnd

Tangani ke jendela.

uMsg

Pesan.

wParam

Parameter pesan pertama.

lParam

Parameter pesan kedua.

Mengembalikan nilai

Mengembalikan nilai Boolean. Prosedur dialog mengembalikan nilai ini; untuk informasi selengkapnya, lihat dokumentasi Platform SDK.

Keterangan

Implementasi kelas dasar memanggil DefWindowProc. Ambil alih metode ini untuk menangani pesan yang terkait dengan kontrol dialog. Jika metode penimpaan tidak menangani pesan tertentu, metode tersebut harus memanggil metode kelas dasar.

Jika pengguna mengubah properti apa pun melalui kontrol dialog, atur bendera CBasePropertyPage::m_bDirty ke TRUE. Kemudian panggil metode IPropertyPageSite::OnStatusChange pada pointer CBasePropertyPage::m_pPageSite untuk menginformasikan bingkai.

Contoh

Contoh berikut merespons klik tombol dengan memperbarui variabel anggota, yang diasumsikan ditentukan dalam kelas turunan. Contoh ini juga menunjukkan fungsi pembantu untuk mengatur status kotor halaman properti.

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

Persyaratan

Persyaratan Nilai
Header
Cprop.h (termasuk Streams.h)
Pustaka
Strmbase.lib (build ritel);
Strmbasd.lib (build debug)

Lihat juga

Kelas CBasePropertyPage