Bagikan melalui


Kelas CContextMenuManager

Objek CContextMenuManager mengelola menu pintasan, juga dikenal sebagai menu konteks.

Sintaks

class CContextMenuManager : public CObject

Anggota

Konstruktor Publik

Nama Deskripsi
CContextMenuManager::CContextMenuManager Membuat CContextMenuManager objek.
CContextMenuManager::~CContextMenuManager Destruktor.

Metode Publik

Nama Deskripsi
CContextMenuManager::AddMenu Menambahkan menu pintasan baru.
CContextMenuManager::GetMenuById Mengembalikan handel ke menu yang terkait dengan ID sumber daya yang disediakan.
CContextMenuManager::GetMenuByName Mengembalikan handel ke menu yang cocok dengan nama menu yang disediakan.
CContextMenuManager::GetMenuNames Mengembalikan daftar nama menu.
CContextMenuManager::LoadState Memuat menu pintasan yang disimpan dalam registri Windows.
CContextMenuManager::ResetState Menghapus menu pintasan dari manajer menu konteks.
CContextMenuManager::SaveState Menyimpan menu pintasan ke registri Windows.
CContextMenuManager::SetDontCloseActiveMenu Mengontrol apakah CContextMenuManager menutup menu pintasan aktif saat menampilkan menu pintasan baru.
CContextMenuManager::ShowPopupMenu Menampilkan menu pintasan yang ditentukan.
CContextMenuManager::TrackPopupMenu Menampilkan menu pintasan yang ditentukan. Mengembalikan indeks perintah menu yang dipilih.

Keterangan

CContextMenuManager mengelola menu pintasan dan memastikan bahwa mereka memiliki penampilan yang konsisten.

Anda tidak boleh membuat CContextMenuManager objek secara manual. Kerangka kerja aplikasi Anda membuat CContextMenuManager objek. Namun, Anda harus memanggil CWinAppEx::InitContextMenuManager saat aplikasi Anda diinisialisasi. Setelah menginisialisasi manajer konteks, gunakan metode CWinAppEx::GetContextMenuManager untuk mendapatkan penunjuk ke manajer konteks untuk aplikasi Anda.

Anda dapat membuat menu pintasan saat runtime dengan memanggil AddMenu. Jika Anda ingin menampilkan menu tanpa terlebih dahulu menerima input pengguna, hubungi ShowPopupMenu. TrackPopupMenu digunakan saat Anda ingin membuat menu dan menunggu input pengguna. TrackPopupMenu mengembalikan indeks perintah yang dipilih atau 0 jika pengguna keluar tanpa memilih apa pun.

juga CContextMenuManager dapat menyimpan dan memuat statusnya ke registri Windows.

Contoh

Contoh berikut menunjukkan cara menambahkan menu ke CContextMenuManager objek, dan cara tidak menutup menu pop-up aktif saat CContextMenuManager objek menampilkan menu pop-up baru. Cuplikan kode ini adalah bagian dari sampel Halaman Kustom.

// The GetContextMenuManager method is inherited from the CWinAppEx class.
GetContextMenuManager()->AddMenu(_T("My menu"), IDR_CONTEXT_MENU);
GetContextMenuManager()->SetDontCloseActiveMenu(true);

Hierarki Warisan

CObject

CContextMenuManager

Persyaratan

Header: afxcontextmenumanager.h

CContextMenuManager::AddMenu

Menambahkan menu pintasan baru ke CContextMenuManager.

BOOL AddMenu(
    UINT uiMenuNameResId,
    UINT uiMenuResId);

BOOL AddMenu(
    LPCTSTR lpszName,
    UINT uiMenuResId);

Parameter

uiMenuNameResId
[di] ID sumber daya untuk string yang berisi nama untuk menu baru.

uiMenuResId
[di] ID sumber daya menu.

lpszName
[di] String yang berisi nama untuk menu baru.

Tampilkan Nilai

Bukan nol jika metode berhasil; 0 jika metode gagal.

Keterangan

Metode ini gagal jika uiMenuResId tidak valid atau jika menu lain dengan nama yang sama sudah ada di CContextMenuManager.

CContextMenuManager::CContextMenuManager

Membuat objek CContextMenuManager .

CContextMenuManager();

Keterangan

Dalam kebanyakan kasus, Anda tidak boleh membuat CContextMenuManager secara manual. Kerangka kerja aplikasi Anda membuat CContextMenuManager objek. Anda harus memanggil CWinAppEx::InitContextMenuManager selama inisialisasi aplikasi Anda. Untuk mendapatkan penunjuk ke manajer konteks, panggil CWinAppEx::GetContextMenuManager.

CContextMenuManager::GetMenuById

Mengembalikan handel ke menu yang terkait dengan ID sumber daya tertentu.

HMENU GetMenuById(UINT nMenuResId) const;

Parameter

nMenuResId
[di] ID sumber daya untuk menu.

Tampilkan Nilai

Handel ke menu terkait atau NULL jika menu tidak ditemukan.

CContextMenuManager::GetMenuByName

Mengembalikan handel ke menu tertentu.

HMENU GetMenuByName(
    LPCTSTR lpszName,
    UINT* puiOrigResID = NULL) const;

Parameter

lpszName
[di] String yang berisi nama menu yang akan diambil.

puiOrigResID
[out] Penunjuk ke UINT. Parameter ini berisi ID sumber daya dari menu yang ditentukan, jika ditemukan.

Tampilkan Nilai

Handel ke menu yang cocok dengan nama yang ditentukan oleh lpszName. NULL jika tidak ada menu yang disebut lpszName.

Keterangan

Jika metode ini menemukan menu yang cocok dengan lpszName, GetMenuByName menyimpan ID sumber daya menu di parameter puiOrigResID.

CContextMenuManager::GetMenuNames

Mengembalikan daftar nama menu yang ditambahkan ke CContextMenuManager.

void GetMenuNames(CStringList& listOfNames) const;

Parameter

listOfNames
[out] Referensi ke parameter CStringList . Metode ini menulis daftar nama menu ke parameter ini.

CContextMenuManager::LoadState

Memuat informasi yang terkait dengan Kelas CContextMenuManager dari registri Windows.

virtual BOOL LoadState(LPCTSTR lpszProfileName = NULL);

Parameter

lpszProfileName
[di] String yang berisi jalur relatif kunci registri.

Tampilkan Nilai

Bukan nol jika metode berhasil; jika tidak, 0.

Keterangan

Parameter lpszProfileName bukan jalur absolut untuk entri registri. Ini adalah jalur relatif yang ditambahkan ke akhir kunci registri default untuk aplikasi Anda. Untuk mendapatkan atau mengatur kunci registri default, gunakan metode CWinAppEx::GetRegistryBase dan CWinAppEx::SetRegistryBase masing-masing.

Gunakan metode CContextMenuManager::SaveState untuk menyimpan menu pintasan ke registri.

CContextMenuManager::ResetState

Menghapus semua item dari menu pintasan yang terkait dengan Kelas CContextMenuManager.

virtual BOOL ResetState();

Tampilkan Nilai

TRUE jika metode berhasil; FALSE jika kegagalan terjadi.

Keterangan

Metode ini menghapus menu pop-up dan menghapusnya dari CContextMenuManager.

CContextMenuManager::SaveState

Menyimpan informasi yang terkait dengan Kelas CContextMenuManager ke registri Windows.

virtual BOOL SaveState(LPCTSTR lpszProfileName = NULL);

Parameter

lpszProfileName
[di] String yang berisi jalur relatif kunci registri.

Tampilkan Nilai

Bukan nol jika metode berhasil; jika tidak, 0.

Keterangan

Parameter lpszProfileName bukan jalur absolut untuk entri registri. Ini adalah jalur relatif yang ditambahkan ke akhir kunci registri default untuk aplikasi Anda. Untuk mendapatkan atau mengatur kunci registri default, gunakan metode CWinAppEx::GetRegistryBase dan CWinAppEx::SetRegistryBase masing-masing.

Gunakan metode CContextMenuManager::LoadState untuk memuat menu pintasan dari registri.

CContextMenuManager::SetDontCloseActiveMenu

Mengontrol apakah CContextMenuManager menutup menu pop-up aktif saat menampilkan menu pop-up baru.

void SetDontCloseActiveMenu (BOOL bSet = TRUE);

Parameter

bSet
[di] Parameter Boolean yang mengontrol apakah akan menutup menu pop-up aktif. Nilai TRUE menunjukkan menu pop-up aktif tidak ditutup. FALSE menunjukkan bahwa menu pop-up aktif ditutup.

Keterangan

Secara default, menutup CContextMenuManager menu pop-up aktif.

CContextMenuManager::ShowPopupMenu

Menampilkan menu pintasan yang ditentukan.

virtual BOOL ShowPopupMenu(
    UINT uiMenuResId,
    int x,
    int y,
    CWnd* pWndOwner,
    BOOL bOwnMessage = FALSE,
    BOOL bRightAlign = FALSE);

virtual CMFCPopupMenu* ShowPopupMenu(
    HMENU hmenuPopup,
    int x,
    int y,
    CWnd* pWndOwner,
    BOOL bOwnMessage = FALSE,
    BOOL bAutoDestroy = TRUE,
    BOOL bRightAlign = FALSE);

Parameter

uiMenuResId
[di] ID sumber daya menu yang akan ditampilkan metode ini.

x
[di] Offset horizontal untuk menu pintasan dalam koordinat klien.

y
[di] Offset vertikal untuk menu pintasan dalam koordinat klien

pWndOwner
[di] Penunjuk ke jendela induk menu pintasan.

bOwnMessage
[di] Parameter Boolean yang menunjukkan bagaimana pesan dirutekan. Jika bOwnMessage FALSE, perutean MFC standar akan digunakan. Jika tidak, pWndOwner menerima pesan.

hmenuPopup
[di] Handel menu yang akan ditampilkan metode ini.

bAutoDestroy
[di] Parameter Boolean yang menunjukkan apakah menu akan dihancurkan secara otomatis.

bRightAlign
[di] Parameter Boolean yang menunjukkan bagaimana item menu diratakan. Jika bRightAlign true, menu diratakan kanan untuk urutan baca kanan ke kiri.

Tampilkan Nilai

Overload metode pertama mengembalikan nonzero jika metode menunjukkan menu berhasil; jika tidak, 0. Kelebihan beban metode kedua mengembalikan penunjuk ke CMFCPopupMenu jika menu pintasan ditampilkan dengan benar; jika tidak, NULL.

Keterangan

Metode ini menyerupai metode CContextMenuManager::TrackPopupMenu di mana kedua metode menampilkan menu pintasan. Namun, TrackPopupMenu mengembalikan indeks perintah menu yang dipilih.

Jika parameter bAutoDestroy FALSE, Anda harus memanggil metode yang diwariskan DestroyMenu secara manual untuk merilis sumber daya memori. Implementasi ShowPopupMenu default tidak menggunakan parameter bAutoDestroy. Ini disediakan untuk penggunaan di masa mendatang atau untuk kelas kustom yang berasal dari CContextMenuManager kelas .

CContextMenuManager::TrackPopupMenu

Menampilkan menu pintasan yang ditentukan dan mengembalikan indeks perintah menu pintasan terpilih.

virtual UINT TrackPopupMenu(
    HMENU hmenuPopup,
    int x,
    int y,
    CWnd* pWndOwner,
    BOOL bRightAlign = FALSE);

Parameter

hmenuPopup
[di] Handel menu pintasan yang ditampilkan metode ini.

x
[di] Offset horizontal untuk menu pintasan dalam koordinat klien.

y
[di] Offset vertikal untuk menu pintasan dalam koordinat klien.

pWndOwner
[di] Penunjuk ke jendela induk menu pintasan.

bRightAlign
[di] Parameter Boolean yang menunjukkan bagaimana item menu diratakan. Jika bRightAlign true, menu diratakan kanan untuk urutan baca kanan ke kiri. Jika bRightAlign adalah FALSE, menu diratakan kiri untuk urutan baca kiri ke kanan.

Tampilkan Nilai

ID perintah menu dari perintah yang dipilih pengguna; 0 jika pengguna menutup menu pintasan tanpa memilih perintah menu.

Keterangan

Metode ini berfungsi sebagai panggilan modal untuk menampilkan menu pintasan. Aplikasi tidak akan melanjutkan ke baris berikut dalam kode hingga pengguna menutup menu pintasan atau memilih perintah. Metode alternatif yang dapat Anda gunakan untuk menampilkan menu pintasan adalah CContextMenuManager::ShowPopupMenu. Metode tersebut bukan panggilan modal dan tidak akan mengembalikan ID dari perintah yang dipilih.

Lihat juga

Bagan Hierarki
Kelas
Kelas CWinAppEx