CMFCMenuButton – třída
Tlačítko, které zobrazuje místní nabídku a sestavy na výběrech nabídek uživatele.
Syntaxe
class CMFCMenuButton : public CMFCButton
Členové
Veřejné konstruktory
Jméno | popis |
---|---|
CMFCMenuButton::CMFCMenuButton | CMFCMenuButton Vytvoří objekt. |
Veřejné metody
Jméno | popis |
---|---|
CMFCMenuButton::P reTranslateMessage | Volané architekturou k překladu zpráv oken před jejich odesláním. (Přepsání CMFCButton::PreTranslateMessage .) |
CMFCMenuButton::SizeToContent | Změní velikost tlačítka podle jeho textu a velikosti obrázku. |
Datové členy
Jméno | popis |
---|---|
CMFCMenuButton::m_bOSMenu | Určuje, zda se má zobrazit výchozí místní nabídka systému nebo použít CContextMenuManager::TrackPopupMenu. |
CMFCMenuButton::m_bRightArrow | Určuje, jestli se místní nabídka zobrazí pod tlačítkem nebo vpravo od tlačítka. |
CMFCMenuButton::m_bStayPressed | Určuje, jestli tlačítko nabídky změní svůj stav poté, co uživatel tlačítko uvolní. |
CMFCMenuButton::m_hMenu | Popisovač připojené nabídky Windows. |
CMFCMenuButton::m_nMenuResult | Identifikátor, který označuje, kterou položku uživatel vybral z místní nabídky. |
CMFCMenuButton::m_bDefaultClick | Povolit výchozí zpracování (při zpracování textu nebo obrázku tlačítka) |
Poznámky
Třída CMFCMenuButton
je odvozena z CMFCButton Třídy , která je následně odvozena z CButton Třídy. Proto můžete v kódu použít CMFCMenuButton
stejným způsobem, jakým byste použili CButton
.
Při vytváření CMFCMenuButton
je nutné předat popisovač přidružené místní nabídce. Dále zavolejte funkci CMFCMenuButton::SizeToContent
. CMFCMenuButton::SizeToContent
zkontroluje, že velikost tlačítka je dostatečná pro zahrnutí šipky, která odkazuje na umístění, kde se zobrazí automaticky otevírané okno – konkrétně pod tlačítkem nebo vpravo od tlačítka.
Příklad
Následující příklad ukazuje, jak nastavit úchyt nabídky připojené k tlačítku, změnit velikost tlačítka podle jeho textu a velikosti obrázku a nastavit místní nabídku, která je zobrazena architekturou. Tento fragment kódu je součástí ukázky New Controls.
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;
Hierarchie dědičnosti
Požadavky
Záhlaví: afxmenubutton.h
CMFCMenuButton::CMFCMenuButton
Vytvoří nový CMFCMenuButton objektu.
CMFCMenuButton();
CMFCMenuButton::m_bOSMenu
Logická členská proměnná, která označuje, která místní nabídka zobrazí architekturu.
BOOL m_bOSMenu;
Poznámky
Pokud m_bOSMenu
je PRAVDA, architektura volá zděděnou TrackPopupMenu
metodu pro tento objekt. V opačném případě architektura volá CContextMenuManager::TrackPopupMenu.
CMFCMenuButton::m_bRightArrow
Logická proměnná člena, která označuje umístění místní nabídky.
BOOL m_bRightArrow;
Poznámky
Když uživatel stiskne tlačítko nabídky, aplikace zobrazí místní nabídku. Architektura zobrazí místní nabídku buď pod tlačítkem, nebo vpravo od tlačítka. Tlačítko má také malou šipku, která označuje, kde se zobrazí místní nabídka. Pokud m_bRightArrow
je true, architektura zobrazí místní nabídku napravo od tlačítka. V opačném případě se pod tlačítkem zobrazí místní nabídka.
CMFCMenuButton::m_bStayPressed
Logická proměnná členu, která označuje, jestli se tlačítko nabídky zobrazí, když uživatel provede výběr z místní nabídky.
BOOL m_bStayPressed;
Poznámky
m_bStayPressed
Pokud je člen NEPRAVDA, tlačítko nabídky se po kliknutí na tlačítko nestiskne. V tomto případě architektura zobrazí pouze místní nabídku.
Pokud je m_bStayPressed
člen true, tlačítko nabídky se stiskne, když uživatel klikne na tlačítko. Zůstane stisknutá, dokud uživatel nezavře místní nabídku, a to buď provedením výběru nebo zrušením.
CMFCMenuButton::m_hMenu
Popisovač připojené nabídky.
HMENU m_hMenu;
Poznámky
Rozhraní zobrazí nabídku označenou touto člennou proměnnou, když uživatel klikne na tlačítko nabídky.
CMFCMenuButton::m_nMenuResult
Celé číslo označující, kterou položku uživatel vybere z místní nabídky.
int m_nMenuResult;
Poznámky
Hodnota této členské proměnné je nulová, pokud uživatel nabídku zruší bez výběru nebo pokud dojde k chybě.
CMFCMenuButton::m_bDefaultClick
Umožňuje výchozí zpracování textu nebo obrázků na tlačítku.
BOOL m_bDefaultClick;
Poznámky
Nastavení m_bDefaultClick na false způsobí, že tlačítko zobrazí nabídku po kliknutí na libovolné místo na tlačítku.
CMFCMenuButton::P reTranslateMessage
Volané architekturou k překladu zpráv oken před jejich odesláním.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Parametry
pMsg
[v] Odkazuje na strukturu MSG , která obsahuje zprávu ke zpracování.
Vrácená hodnota
Nenulové, pokud byla zpráva přeložena a neměla by být odeslána; 0, pokud zpráva nebyla přeložena a měla by být odeslána.
Poznámky
CMFCMenuButton::SizeToContent
Změní velikost tlačítka podle velikosti textu a velikosti obrázku.
virtual CSize SizeToContent(BOOL bCalcOnly = FALSE);
Parametry
bCalcOnly
[v] Logický parametr, který označuje, zda tato metoda změní velikost tlačítka .
Vrácená hodnota
Objekt CSize , který určuje novou velikost tlačítka.
Poznámky
Pokud zavoláte tuto funkci a bCalcOnly má hodnotu TRUE, SizeToContent
vypočítá pouze novou velikost tlačítka.
Nová velikost tlačítka se vypočítá tak, aby se vešla do textu tlačítka, obrázku a šipky. Architektura také přidává předdefinované okraje o 10 pixelech pro vodorovnou hranu a 5 pixelů pro svislou hranu.