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
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.