CMFCCaptionBar – třída
Objekt CMFCCaptionBar
je ovládací panel, který může zobrazit tři prvky: tlačítko, textový popisek a rastrový obrázek. Může zobrazit vždy pouze jeden prvek každého typu. Každý prvek můžete zarovnat k levému nebo pravému okraji ovládacího prvku nebo na střed. Můžete také použít plochý nebo 3D styl na horní a dolní ohraničení pruhu titulků.
Syntaxe
class CMFCCaptionBar : public CPane
Členové
Veřejné metody
Název | Popis |
---|---|
CMFCCaptionBar::Create | Vytvoří ovládací prvek popisku a připojí ho k objektu CMFCCaptionBar . |
CMFCCaptionBar::D oesAllowDynInsertBefore | Určuje, jestli je možné dynamicky vložit další podokno mezi řádek titulků a nadřazený rámec. (Přepsání CBasePane::D oesAllowDynInsertBefore.) |
CMFCCaptionBar::EnableButton | Povolí nebo zakáže tlačítko na panelu titulků. |
CMFCCaptionBar::GetAlignment | Vrátí zarovnání zadaného prvku. |
CMFCCaptionBar::GetBorderSize | Vrátí velikost ohraničení pruhu titulků. |
CMFCCaptionBar::GetButtonRect | Načte ohraničující obdélník tlačítka na řádku titulků. |
CMFCCaptionBar::GetMargin | Vrátí vzdálenost mezi okrajem prvků pruhu titulků a okrajem ovládacího prvku titulek. |
CMFCCaptionBar::IsMessageBarMode | Určuje, jestli je řádek titulků v režimu panelu zpráv. |
CMFCCaptionBar::RemoveBitmap | Odebere rastrový obrázek z řádku titulků. |
CMFCCaptionBar::RemoveButton | Odebere tlačítko z panelu titulků. |
CMFCCaptionBar::RemoveIcon | Odebere ikonu z panelu titulků. |
CMFCCaptionBar::RemoveText | Odebere textový popisek z řádku titulků. |
CMFCCaptionBar::SetBitmap | Nastaví rastrový obrázek pro řádek titulků. |
CMFCCaptionBar::SetBorderSize | Nastaví velikost ohraničení pruhu titulků. |
CMFCCaptionBar::SetButton | Nastaví tlačítko pro panel titulků. |
CMFCCaptionBar::SetButtonPressed | Určuje, jestli tlačítko zůstane stisknuté. |
CMFCCaptionBar::SetButtonToolTip | Nastaví popis tlačítka. |
CMFCCaptionBar::SetFlatBorder | Nastaví styl ohraničení pruhu titulků. |
CMFCCaptionBar::SetIcon | Nastaví ikonu pro řádek titulků. |
CMFCCaptionBar::SetImageToolTip | Nastaví popis obrázku pro řádek titulků. |
CMFCCaptionBar::SetMargin | Nastaví vzdálenost mezi okrajem prvku pruhu titulků a okrajem ovládacího prvku titulku. |
CMFCCaptionBar::SetText | Nastaví textový popisek pro řádek titulků. |
Chráněné metody
Název | Popis |
---|---|
CMFCCaptionBar::OnDrawBackground | Volá se rozhraním pro vyplnění pozadí záhlaví. |
CMFCCaptionBar::OnDrawBorder | Volá se rozhraním pro vykreslení ohraničení pruhu titulků. |
CMFCCaptionBar::OnDrawButton | Volá se rozhraním, které nakreslete tlačítko záhlaví titulku. |
CMFCCaptionBar::OnDrawImage | Zavolá se rozhraním pro vykreslení obrázku pruhu titulků. |
CMFCCaptionBar::OnDrawText | Zavolá se rozhraním pro vykreslení textu na řádku titulků. |
Datové členy
Název | Popis |
---|---|
CMFCCaptionBar::m_clrBarBackground | Barva pozadí panelu titulků |
CMFCCaptionBar::m_clrBarBorder | Barva ohraničení pruhu titulků |
CMFCCaptionBar::m_clrBarText | Barva textu na řádku titulků |
Poznámky
Chcete-li vytvořit řádek titulků, postupujte takto:
CMFCCaptionBar
Vytvořte objekt. Obvykle byste přidali řádek titulků do třídy okna rámečku.Volání CMFCCaptionBar::Create metoda pro vytvoření ovládacího prvku titulek a připojení k objektu
CMFCCaptionBar
.Volání CMFCCaptionBar::SetButton, CMFCCaptionBar::SetText, CMFCCaptionBar::SetIcon a CMFCCaptionBar::SetBitmap k nastavení prvků pruhu titulků.
Když nastavíte prvek tlačítka, musíte k tlačítku přiřadit ID příkazu. Když uživatel klikne na tlačítko, řádek titulků směruje WM_COMMAND zprávy, které mají toto ID, do nadřazeného okna rámce.
Panel titulků může fungovat také v režimu panelu zpráv, který emuluje panel zpráv, který se zobrazí v aplikacích systém Microsoft Office 2007. V režimu panelu zpráv se na panelu titulků zobrazí rastrový obrázek, zpráva a tlačítko (které obvykle otevře dialogové okno).) K rastrovém obrázku můžete přiřadit popis.
Chcete-li povolit režim panelu zpráv, zavolejte CMFCCaptionBar::Create a nastavte čtvrtý parametr (bIsMessageBarMode) na TRUE.
Příklad
Následující příklad ukazuje, jak používat různé metody ve CMFCCaptionBar
třídě. Příklad ukazuje, jak vytvořit ovládací prvek titulek, nastavit 3D ohraničení pruhu titulků, nastavit vzdálenost, v pixelech, mezi okrajem prvků pruhu titulků a okrajem ovládacího prvku titulek, nastavit tlačítko pro řádek titulků, nastavit popis tlačítka pro tlačítko, nastavit popisek textu pro řádek titulků, nastavte rastrový obrázek pro řádek titulků a nastavte popis obrázku na panelu titulků. Tento fragment kódu je součástí ukázky MS Office 2007 Demo.
CMFCCaptionBar m_wndMessageBar;
BOOL CMainFrame::CreateMessageBar()
{
// The this pointer points to a CMainFrame class which extends the CFrameWndEx class.
if (!m_wndMessageBar.Create(WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS, this, ID_VIEW_MESSAGEBAR, -1, TRUE))
{
TRACE0("Failed to create caption bar\n");
return FALSE;
}
m_wndMessageBar.SetFlatBorder(FALSE);
m_wndMessageBar.SetMargin(10);
m_wndMessageBar.SetButton(_T("Options..."), ID_TOOLS_OPTIONS, CMFCCaptionBar::ALIGN_LEFT, FALSE);
m_wndMessageBar.SetButtonToolTip(_T("Click here to see more options"));
m_wndMessageBar.SetText(_T("Welcome to the MFC MSOffice2007 demonstration!"), CMFCCaptionBar::ALIGN_LEFT);
m_wndMessageBar.SetBitmap(IDB_INFO, RGB(255, 255, 255), FALSE, CMFCCaptionBar::ALIGN_LEFT);
m_wndMessageBar.SetImageToolTip(_T("Important"), _T("Please take a look at MSOffice2007Demo source code to learn how to create advanced user interface in minutes."));
return TRUE;
}
Hierarchie dědičnosti
Požadavky
Záhlaví: afxcaptionbar.h
CMFCCaptionBar::Create
Vytvoří ovládací prvek popisku a připojí ho k objektu CMFCCaptionBar
.
BOOL Create(
DWORD dwStyle,
CWnd* pParentWnd,
UINT uID,
int nHeight=-1,
BOOL bIsMessageBarMode=FALSE);
Parametry
dwStyle
Logická kombinace NEBO stylů pruhu titulků.
pParentWnd
Nadřazené okno ovládacího prvku titulek
Uid
ID ovládacího prvku titulek.
nHeight
Výška ovládacího prvku titulek v pixelech. Pokud je hodnota -1, výška se vypočítá podle výšky ikony, textu a tlačítka, které se zobrazí ovládací prvek záhlaví titulku.
bIsMessageBarMode
TRUE, pokud je řádek titulků v režimu panelu zpráv; JINAK NEPRAVDA.
Návratová hodnota
TRUE, pokud je ovládací prvek titulku úspěšně vytvořen; JINAK NEPRAVDA.
Poznámky
Objekt vytvoříte CMFCCaptionBar
ve dvou krocích. Nejprve zavoláte konstruktor a pak zavoláte metodu Create
, která vytvoří ovládací prvek Windows a připojí ho k objektu CMFCCaptionBar
.
CMFCCaptionBar::D oesAllowDynInsertBefore
Určuje, jestli je možné dynamicky vložit další podokno mezi řádek titulků a nadřazený rámec.
virtual BOOL DoesAllowDynInsertBefore() const;
Návratová hodnota
Vrátí hodnotu FALSE, pokud ji nepřepíšete.
Poznámky
CMFCCaptionBar::EnableButton
Povolí nebo zakáže tlačítko na panelu titulků.
void EnableButton(BOOL bEnable=TRUE);
Parametry
bEnable
[v] Pokud chcete tlačítko povolit, NEPRAVDA tlačítko zakážete.
CMFCCaptionBar::GetAlignment
Vrátí zarovnání zadaného prvku.
BarElementAlignment GetAlignment(BarElement elem);
Parametry
Elem
[v] Prvek pruhu titulku, pro který se má načíst zarovnání.
Návratová hodnota
Zarovnání prvku, například tlačítka, rastrového obrázku, textu nebo ikony.
Poznámky
Zarovnání elementu může být jedna z následujících hodnot:
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER
CMFCCaptionBar::GetBorderSize
Vrátí velikost ohraničení pruhu titulků.
int GetBorderSize() const;
Návratová hodnota
Velikost ohraničení v pixelech.
CMFCCaptionBar::GetButtonRect
Načte ohraničující obdélník tlačítka na řádku titulků.
CRect GetButtonRect() const;
Návratová hodnota
CRect
Objekt, který obsahuje souřadnice ohraničujícího obdélníku tlačítka na řádku titulků.
CMFCCaptionBar::GetMargin
Vrátí vzdálenost mezi okrajem prvků pruhu titulků a okrajem ovládacího prvku titulek.
int GetMargin() const;
Návratová hodnota
Vzdálenost v pixelech mezi okrajem prvků pruhu titulků a okrajem ovládacího prvku titulek.
CMFCCaptionBar::IsMessageBarMode
Určuje, jestli je řádek titulků v režimu panelu zpráv.
BOOL IsMessageBarMode() const;
Návratová hodnota
TRUE, pokud je řádek titulků v režimu panelu zpráv; JINAK NEPRAVDA.
Poznámky
V režimu panelu zpráv se na panelu zpráv zobrazí obrázek s popisem, textem zprávy a tlačítkem.
CMFCCaptionBar::m_clrBarBackground
Barva pozadí panelu titulků
COLORREF m_clrBarBackground
CMFCCaptionBar::m_clrBarBorder
Barva ohraničení pruhu titulků
COLORREF m_clrBarBorder
CMFCCaptionBar::m_clrBarText
Barva textu na řádku titulků
COLORREF m_clrBarText
CMFCCaptionBar::OnDrawBackground
Volá se rozhraním pro vyplnění pozadí záhlaví.
virtual void OnDrawBackground(
CDC* pDC,
CRect rect);
Parametry
pDC
[v] Ukazatel na kontext zařízení na panelu titulků.
Rect
[v] Ohraničující obdélník, který se má vyplnit.
Poznámky
Metoda OnDrawBackground
se volá, když se chystá vyplnit pozadí panelu titulků. Výchozí implementace vyplní pozadí pomocí barvy CMFCCaptionBar::m_clrBarBackground .
Přepište tuto metodu v odvozené CMFCCaptionBar
třídě tak, aby se přizpůsobil vzhled panelu titulků.
CMFCCaptionBar::OnDrawBorder
Volá se rozhraním pro vykreslení ohraničení pruhu titulků.
virtual void OnDrawBorder(
CDC* pDC,
CRect rect);
Parametry
pDC
[v] Kontext zařízení, který se používá k zobrazení ohraničení.
Rect
[v] Ohraničující obdélník.
Poznámky
Ve výchozím nastavení mají ohraničení plochý styl.
Tuto metodu v odvozené CMFCCaptionBar
třídě přepište tak, aby se přizpůsobil vzhled ohraničení pruhu titulků.
CMFCCaptionBar::OnDrawButton
Volá se rozhraním, které nakreslete tlačítko záhlaví titulku.
virtual void OnDrawButton(
CDC* pDC,
CRect rect,
const CString& strButton,
BOOL bEnabled);
Parametry
pDC
[v] Ukazatel na kontext zařízení, který slouží k zobrazení tlačítka.
Rect
[v] Ohraničující obdélník tlačítka.
strButton
[v] Textový popisek tlačítka.
bEnabled
[v] TRUE, pokud je tlačítko povoleno; JINAK NEPRAVDA.
Poznámky
Přepsat tuto metodu v odvozené CMFCCaptionBar
třídě přizpůsobit vzhled tlačítka titulku.
CMFCCaptionBar::OnDrawImage
Zavolá se rozhraním pro vykreslení obrázku pruhu titulků.
virtual void OnDrawImage(
CDC* pDC,
CRect rect);
Parametry
pDC
[v] Ukazatel na kontext zařízení, který se používá k zobrazení obrázku.
Rect
[v] Určuje ohraničující obdélník obrázku.
Poznámky
Přepsat tuto metodu v odvozené CMFCCaptionBar
třídě přizpůsobit vzhled obrázku.
CMFCCaptionBar::OnDrawText
Zavolá se rozhraním pro vykreslení textu na řádku titulků.
virtual void OnDrawText(
CDC* pDC,
CRect rect,
const CString& strText);
Parametry
pDC
[v] Ukazatel na kontext zařízení, který slouží k zobrazení tlačítka.
Rect
[v] Ohraničující obdélník textu.
strText
[v] Textový řetězec, který se má zobrazit.
Poznámky
Výchozí implementace zobrazí text pomocí CDC::DrawText
a CMFCCaptionBar::m_clrBarText barvu.
Tuto metodu v odvozené CMFCCaptionBar
třídě přepište tak, aby se přizpůsobil vzhled textu řádku titulků.
CMFCCaptionBar::RemoveBitmap
Odebere rastrový obrázek z řádku titulků.
void RemoveBitmap();
CMFCCaptionBar::RemoveButton
Odebere tlačítko z panelu titulků.
void RemoveButton();
Poznámky
Rozložení prvků pruhu titulků se upraví automaticky.
CMFCCaptionBar::RemoveIcon
Odebere ikonu z panelu titulků.
void RemoveIcon();
CMFCCaptionBar::RemoveText
Odebere textový popisek z řádku titulků.
void RemoveText();
CMFCCaptionBar::SetBitmap
Nastaví rastrový obrázek pro řádek titulků.
void SetBitmap(
HBITMAP hBitmap,
COLORREF clrTransparent,
BOOL bStretch=FALSE,
BarElementAlignment bmpAlignment=ALIGN_RIGHT);
void SetBitmap(
UINT uiBmpResID,
COLORREF clrTransparent,
BOOL bStretch=FALSE,
BarElementAlignment bmpAlignment=ALIGN_RIGHT);
Parametry
hBitmap
[v] Úchyt rastrového obrázku, který chcete nastavit.
clrTransparent
[v] Hodnota RGB, která určuje průhlednou barvu rastrového obrázku.
bStretch
[v] Pokud je hodnota PRAVDA, rastrový obrázek se roztáhne, pokud se nevejde do obdélníku ohraničujícího obrázek. V opačném případě není rastrový obrázek roztažený.
bmpAlignment
[v] Zarovnání rastrového obrázku.
Poznámky
Tuto metodu použijte k nastavení rastrového obrázku na panelu titulků.
Předchozí rastrový obrázek se automaticky zničí. Pokud řádek titulků zobrazí ikonu, protože jste volali CMFCCaptionBar::SetIcon metoda, rastrový obrázek se nezobrazí, pokud neodeberete ikonu voláním CMFCCaptionBar::RemoveIcon.
Rastrový obrázek je zarovnaný podle parametru bmpAlignment . Tento parametr může být jedna z následujících BarElementAlignment
hodnot:
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER
CMFCCaptionBar::SetBorderSize
Nastaví velikost ohraničení pruhu titulků.
void SetBorderSize(int nSize);
Parametry
NSize
[v] Nová velikost ohraničení pruhu titulků v pixelech
CMFCCaptionBar::SetButton
Nastaví tlačítko pro panel titulků.
void SetButton(
LPCTSTR lpszLabel,
UINT uiCmdUI,
BarElementAlignment btnAlignmnet=ALIGN_LEFT,
BOOL bHasDropDownArrow=TRUE);
Parametry
lpszLabel
Popisek příkazu tlačítka.
uiCmdUI
ID příkazu tlačítka.
btnAlignmnet
Zarovnání tlačítka.
bHasDropDownArrow
TRUE, pokud tlačítko zobrazuje šipku rozevíracího seznamu, jinak NEPRAVDA.
CMFCCaptionBar::SetButtonPressed
Určuje, jestli tlačítko zůstane stisknuté.
void SetButtonPressed(BOOL bPresed=TRUE);
Parametry
bPresed
TRUE, pokud tlačítko udržuje svůj stisknutý stav, NEPRAVDA jinak.
CMFCCaptionBar::SetButtonToolTip
Nastaví popis tlačítka.
void SetButtonToolTip(
LPCTSTR lpszToolTip,
LPCTSTR lpszDescription=NULL);
Parametry
lpszToolTip
[v] Popisek.
lpszDescription
[v] Popis popisu
CMFCCaptionBar::SetFlatBorder
Nastaví styl ohraničení pruhu titulků.
void SetFlatBorder(BOOL bFlat=TRUE);
Parametry
bFlat
[v] TRUE, pokud je ohraničení pruhu titulků ploché. NEPRAVDA, pokud je ohraničení 3D.
CMFCCaptionBar::SetIcon
Nastaví ikonu pro řádek titulků.
void SetIcon(
HICON hIcon,
BarElementAlignment iconAlignment=ALIGN_RIGHT);
Parametry
hIcon
[v] Úchyt ikony, která se má nastavit.
iconAlignment
[v] Zarovnání ikony
Poznámky
Titulky můžou zobrazovat ikony nebo rastrové obrázky. Informace o tom, jak zobrazit rastrový obrázek, najdete v tématu CMFCCaptionBar::SetBitmap . Pokud nastavíte ikonu i rastrový obrázek, ikona se vždy zobrazí. Volání CMFCCaptionBar::RemoveIcon odebrání ikony z řádku titulků.
Ikona je zarovnaná podle parametru iconAlignment . Může to být jedna z následujících BarElementAlignment
hodnot:
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER
CMFCCaptionBar::SetImageToolTip
Nastaví popis obrázku na panelu titulků.
void SetImageToolTip(
LPCTSTR lpszToolTip,
LPCTSTR lpszDescription=NULL);
Parametry
lpszToolTip
[v] Text popisu
lpszDescription
[v] Popis popisu
CMFCCaptionBar::SetMargin
Nastaví vzdálenost mezi okrajem prvku pruhu titulků a okrajem ovládacího prvku titulku.
void SetMargin(int nMargin);
Parametry
nMargin
[v] Vzdálenost v pixelech mezi okrajem prvků pruhu titulků a okrajem ovládacího prvku titulek.
CMFCCaptionBar::SetText
Nastaví textový popisek pro řádek titulků.
void SetText(
const CString& strText,
BarElementAlignment textAlignment=ALIGN_RIGHT);
Parametry
strText
[v] Textový řetězec, který chcete nastavit.
textAlignment
[v] Zarovnání textu.
Poznámky
Textový popisek je zarovnaný podle parametru textAlignment . Může to být jedna z následujících BarElementAlignment
hodnot:
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER