Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Egy gomb, amely egy előugró menüt és jelentéseket jelenít meg a felhasználó menüválasztásán.
Szemantika
class CMFCMenuButton : public CMFCButton
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
| CMFCMenuButton::CMFCMenuButton | Egy CMFCMenuButton objektumot hoz létre. |
Nyilvános metódusok
| Név | Description |
|---|---|
| CMFCMenuButton::P reTranslateMessage | A keretrendszer meghívta, hogy lefordítsa az ablaküzeneteket, mielőtt elküldené őket. (Felülbírálások CMFCButton::PreTranslateMessage.) |
| CMFCMenuButton::SizeToContent | A gomb méretét a szöveg és a kép méretének megfelelően módosítja. |
Adattagok
| Név | Description |
|---|---|
| CMFCMenuButton::m_bOSMenu | Megadja, hogy megjelenjen-e az alapértelmezett rendszer előugró menüje, vagy használja-e a CContextMenuManager::TrackPopupMenu parancsot. |
| CMFCMenuButton::m_bRightArrow | Megadja, hogy az előugró menü megjelenjen-e a gomb alatt vagy attól jobbra. |
| CMFCMenuButton::m_bStayPressed | Megadja, hogy a menügomb módosítja-e az állapotát, miután a felhasználó kiadta a gombot. |
| CMFCMenuButton::m_hMenu | A csatolt Windows menü fogópontja. |
| CMFCMenuButton::m_nMenuResult | Egy azonosító, amely jelzi, hogy a felhasználó melyik elemet választotta ki az előugró menüből. |
| CMFCMenuButton::m_bDefaultClick | Alapértelmezett (a gomb szövegén/képén) történő feldolgozás engedélyezése. |
Megjegyzések
Az CMFCMenuButton osztály a CMFCButton osztályból származik, amely viszont a CButton osztályból származik. Ezért ugyanúgy használhatja CMFCMenuButton a kódot, mint a használt CButtonkódot.
Amikor létrehoz egy CMFCMenuButtonelemet, egy fogópontot kell átadnia a társított előugró menünek. Ezután hívja meg a függvényt CMFCMenuButton::SizeToContent.
CMFCMenuButton::SizeToContent ellenőrzi, hogy a gomb mérete elegendő-e ahhoz, hogy egy olyan nyíl legyen, amely arra a helyre mutat, ahol az előugró ablak megjelenik – azaz a gomb alatt vagy jobbra.
Example
Az alábbi példa bemutatja, hogyan állíthatja be a gombhoz csatolt menü fogópontját, méretezheti át a gombot a szöveg és a kép mérete szerint, és hogyan állíthatja be a keretrendszer által megjelenített előugró menüt. Ez a kódrészlet az Új vezérlők minta része.
CMFCMenuButton m_btnMenu;
// CMenu m_menu
m_btnMenu.m_hMenu = m_menu.GetSubMenu(0)->GetSafeHmenu();
m_btnMenu.SizeToContent();
// set to FALSE so that the framework calls CContextMenuManager::TrackPopupMenu
// to display its menu
m_btnMenu.m_bOSMenu = FALSE;
Öröklési hierarchia
Requirements
Fejléc: afxmenubutton.h
CMFCMenuButton::CMFCMenuButton
Új CMFCMenuButton objektumot hoz létre.
CMFCMenuButton();
CMFCMenuButton::m_bOSMenu
Logikai tagváltozó, amely azt jelzi, hogy a keretrendszer melyik előugró menüt jeleníti meg.
BOOL m_bOSMenu;
Megjegyzések
Ha m_bOSMenu IGAZ, a keretrendszer meghívja az objektum öröklődő TrackPopupMenu metódusát. Ellenkező esetben a keretrendszer meghívja a CContextMenuManager::TrackPopupMenu parancsot.
CMFCMenuButton::m_bRightArrow
Logikai tagváltozó, amely az előugró menü helyét jelzi.
BOOL m_bRightArrow;
Megjegyzések
Amikor a felhasználó lenyomja a menügombot, az alkalmazás egy előugró menüt jelenít meg. A keretrendszer megjeleníti az előugró menüt a gomb alatt vagy a gomb jobb oldalán. A gomb egy kis nyíllal is rendelkezik, amely jelzi, hogy hol jelenik meg az előugró menü. Ha m_bRightArrow IGAZ, a keretrendszer megjeleníti az előugró menüt a gombtól jobbra. Ellenkező esetben megjeleníti az előugró menüt a gomb alatt.
CMFCMenuButton::m_bStayPressed
Logikai tagváltozó, amely jelzi, hogy a menügomb lenyomva jelenik-e meg, miközben a felhasználó kiválasztja az előugró menüt.
BOOL m_bStayPressed;
Megjegyzések
Ha a m_bStayPressed tag HAMIS, a menügomb nem lesz lenyomva, amikor a felhasználó a gombra kattint. Ebben az esetben a keretrendszer csak az előugró menüt jeleníti meg.
Ha a m_bStayPressed tag IGAZ, a menügomb akkor lesz lenyomva, amikor a felhasználó a gombra kattint. A program mindaddig lenyomva marad, amíg a felhasználó be nem zárja az előugró menüt egy kijelöléssel vagy megszakítással.
CMFCMenuButton::m_hMenu
A csatolt menü fogópontja.
HMENU m_hMenu;
Megjegyzések
A keretrendszer megjeleníti a tagváltozó által jelzett menüt, amikor a felhasználó a menügombra kattint.
CMFCMenuButton::m_nMenuResult
Egész szám, amely jelzi, hogy a felhasználó melyik elemet választja ki az előugró menüből.
int m_nMenuResult;
Megjegyzések
Ennek a tagváltozónak az értéke nulla, ha a felhasználó kijelölés nélkül megszakítja a menüt, vagy hiba történik.
CMFCMenuButton::m_bDefaultClick
Lehetővé teszi a szöveg vagy képek alapértelmezett feldolgozását a gombon.
BOOL m_bDefaultClick;
Megjegyzések
Ha m_bDefaultClick hamis értékre állítja, a gomb a menüt jeleníti meg, amikor a gomb bármely pontjára kattint.
CMFCMenuButton::P reTranslateMessage
A keretrendszer meghívta, hogy lefordítsa az ablaküzeneteket, mielőtt elküldené őket.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Paraméterek
pMsg
[in] A feldolgozandó üzenetet tartalmazó MSG-struktúrára mutat.
Visszaadott érték
Nonzero, ha az üzenetet lefordították, és nem szabad elküldeni; 0, ha az üzenet nem lett lefordítva, és el kell küldeni.
Megjegyzések
CMFCMenuButton::SizeToContent
A gomb méretét a szöveg és a kép méretének megfelelően módosítja.
virtual CSize SizeToContent(BOOL bCalcOnly = FALSE);
Paraméterek
bCalcOnly
[in] Logikai paraméter, amely jelzi, hogy ez a metódus átméretezi-e a gombot.
Visszaadott érték
Egy CSize objektum, amely megadja a gomb új méretét.
Megjegyzések
Ha ezt a függvényt hívja meg, és a bCalcOnly értéke IGAZ, SizeToContent csak a gomb új méretét számítja ki.
A gomb új méretét úgy számítjuk ki, hogy illeszkedjen a gomb szövegéhez, képéhez és nyilához. A keretrendszer emellett előre definiált, 10 képpontos margókat is hozzáad a vízszintes élhez, a függőleges élhez pedig 5 képpontot.