Megosztás a következőn keresztül:


CMFCMenuButton osztály

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

CObject

CCmdTarget

CWnd

CButton

CMFCButton

CMFCMenuButton

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.

Lásd még

hierarchiadiagram
osztályok
CMFCButton osztály