CMFCCaptionBar クラス
CMFCCaptionBar
オブジェクトは、ボタン、テキスト ラベル、ビットマップの 3 つの要素を表示できるコントロール バーです。 表示できる各要素の数は 1 つずつです。 各要素は、コントロールの左端、右端、または中央に揃えて配置できます。 また、キャプション バーの上部または下部の境界線にフラット スタイルまたは 3D スタイルを適用することもできます。
構文
class CMFCCaptionBar : public CPane
メンバー
パブリック メソッド
名前 | 説明 |
---|---|
CMFCCaptionBar::Create | キャプション バー コントロールを作成し、 CMFCCaptionBar オブジェクトにアタッチします。 |
CMFCCaptionBar::D oesAllowDynInsertBefore | キャプション バーとその親フレームの間に別のウィンドウを動的に挿入できるかどうかを示します。 ( をオーバーライドしますCBasePane::D oesAllowDynInsertBefore.) |
CMFCCaptionBar::EnableButton | キャプション バーのボタンを有効または無効にします。 |
CMFCCaptionBar::GetAlignment | 指定した要素の配置を返します。 |
CMFCCaptionBar::GetBorderSize | キャプション バーの境界線のサイズを返します。 |
CMFCCaptionBar::GetButtonRect | キャプション バーのボタンの外接する四角形を取得します。 |
CMFCCaptionBar::GetMargin | キャプション バー要素の端とキャプション バー コントロールの端との間の距離を返します。 |
CMFCCaptionBar::IsMessageBarMode | キャプション バーがメッセージ バー モードかどうかを指定します。 |
CMFCCaptionBar::RemoveBitmap | キャプション バーからビットマップ イメージを削除します。 |
CMFCCaptionBar::RemoveButton | キャプション バーからボタンを削除します。 |
CMFCCaptionBar::RemoveIcon | キャプション バーからアイコンを削除します。 |
CMFCCaptionBar::RemoveText | キャプション バーからテキスト ラベルを削除します。 |
CMFCCaptionBar::SetBitmap | キャプション バーのビットマップイメージを設定します。 |
CMFCCaptionBar::SetBorderSize | キャプション バーの境界線のサイズを設定します。 |
CMFCCaptionBar::SetButton | キャプション バーのボタンを設定します。 |
CMFCCaptionBar::SetButtonPressed | ボタンを押したままにするかどうかを指定します。 |
CMFCCaptionBar::SetButtonToolTip | ボタンのヒントを設定します。 |
CMFCCaptionBar::SetFlatBorder | キャプション バーの罫線のスタイルを設定します。 |
CMFCCaptionBar::SetIcon | キャプション バーのアイコンを設定します。 |
CMFCCaptionBar::SetImageToolTip | キャプション バーの画像のヒントを設定します。 |
CMFCCaptionBar::SetMargin | キャプション バー要素の端とキャプション バー コントロールの端との間の距離を設定します。 |
CMFCCaptionBar::SetText | キャプション バーのテキスト ラベルを設定します。 |
保護メソッド
名前 | 説明 |
---|---|
CMFCCaptionBar::OnDrawBackground | キャプション バーの背景を埋めるためにフレームワークによって呼び出されます。 |
CMFCCaptionBar::OnDrawBorder | キャプション バーの境界線を描画するためにフレームワークによって呼び出されます。 |
CMFCCaptionBar::OnDrawButton | キャプション バー ボタンを描画するためにフレームワークによって呼び出されます。 |
CMFCCaptionBar::OnDrawImage | キャプション バーイメージを描画するためにフレームワークによって呼び出されます。 |
CMFCCaptionBar::OnDrawText | キャプション バーのテキストを描画するためにフレームワークによって呼び出されます。 |
データ メンバー
名前 | 説明 |
---|---|
CMFCCaptionBar::m_clrBarBackground | キャプション バーの背景色。 |
CMFCCaptionBar::m_clrBarBorder | キャプション バーの境界線の色。 |
CMFCCaptionBar::m_clrBarText | キャプション バーのテキストの色。 |
解説
キャプション バーを作成するには、次の手順に従います。
CMFCCaptionBar
オブジェクトを構築します。 通常は、フレーム ウィンドウ クラスにキャプション バーを追加します。CMFCCaptionBar::Create メソッドを呼び出してキャプション バー コントロールを作成し、
CMFCCaptionBar
オブジェクトにアタッチします。CMFCCaptionBar::SetButton、CMFCCaptionBar::SetText、CMFCCaptionBar::SetIcon、および CMFCCaptionBar::SetBitmap を呼び出してキャプション バー要素を設定します。
ボタン要素を設定するときは、ボタンにコマンド ID を割り当てる必要があります。 ユーザーがボタンをクリックすると、キャプション バーは、この ID を持つWM_COMMANDメッセージを親フレーム ウィンドウにルーティングします。
キャプション バーは、Microsoft Office 2007 アプリケーションに表示されるメッセージ バーをエミュレートするメッセージ バー モードでも機能します。 メッセージ バー モードでは、キャプション バーにビットマップ、メッセージ、ボタン (通常はダイアログ ボックスが開きます) が表示されます。ビットマップにツールヒントを割り当てることができます。
メッセージ バー モードを有効にするには、 CMFCCaptionBar::Create を呼び出し、4 番目のパラメーター (bIsMessageBarMode) を TRUE に設定します。
例
CMFCCaptionBar
クラスのさまざまなメソッドの使用方法を次の例に示します。 この例では、キャプション バー コントロールを作成する方法、キャプション バーの 3D 境界線を設定する方法、キャプション バー要素の端とキャプション バー コントロールの端との間の距離をピクセル単位で設定する方法、キャプション バーのボタンを設定する方法、ボタンのヒントを設定する方法、キャプション バーのテキスト ラベルを設定する方法を示します。 キャプション バーのビットマップ イメージを設定し、キャプション バーに画像のヒントを設定します。 このコード スニペットは、 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;
}
継承階層
要件
Header: afxcaptionbar.h
CMFCCaptionBar::Create
キャプション バー コントロールを作成し、 CMFCCaptionBar
オブジェクトにアタッチします。
BOOL Create(
DWORD dwStyle,
CWnd* pParentWnd,
UINT uID,
int nHeight=-1,
BOOL bIsMessageBarMode=FALSE);
パラメーター
dwStyle
キャプション バー スタイルの論理 OR の組み合わせ。
pParentWnd
キャプション バー コントロールの親ウィンドウ。
uID
キャプション バー コントロールの ID。
nHeight
キャプション バー コントロールの高さ (ピクセル単位)。 -1 の場合、高さはアイコンの高さ、テキスト、キャプション バー コントロールに表示されるボタンに従って計算されます。
bIsMessageBarMode
キャプション バーがメッセージ バー モードの場合は TRUE。それ以外の場合は FALSE。
戻り値
キャプション バー コントロールが正常に作成された場合は TRUE。それ以外の場合は FALSE。
解説
CMFCCaptionBar
オブジェクトは、2 つの手順で作成します。 最初にコンストラクターを呼び出し、次に Create
メソッドを呼び出します。これにより、Windows コントロールが作成され、 CMFCCaptionBar
オブジェクトにアタッチされます。
CMFCCaptionBar::D oesAllowDynInsertBefore
キャプション バーとその親フレームの間に別のウィンドウを動的に挿入できるかどうかを示します。
virtual BOOL DoesAllowDynInsertBefore() const;
戻り値
オーバーライドされない限り、FALSE を返します。
解説
CMFCCaptionBar::EnableButton
キャプション バーのボタンを有効または無効にします。
void EnableButton(BOOL bEnable=TRUE);
パラメーター
bEnable
[in]ボタンを有効にする場合は TRUE、ボタンを無効にする場合は FALSE。
CMFCCaptionBar::GetAlignment
指定した要素の配置を返します。
BarElementAlignment GetAlignment(BarElement elem);
パラメーター
elem
[in]配置を取得するキャプション バー要素。
戻り値
ボタン、ビットマップ、テキスト、アイコンなどの要素の配置。
解説
要素の配置には、次のいずれかの値を指定できます。
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER
CMFCCaptionBar::GetBorderSize
キャプション バーの境界線のサイズを返します。
int GetBorderSize() const;
戻り値
境界線のサイズ (ピクセル単位)。
CMFCCaptionBar::GetButtonRect
キャプション バーのボタンの外接する四角形を取得します。
CRect GetButtonRect() const;
戻り値
キャプション バーのボタンの外接する四角形の座標を格納する CRect
オブジェクト。
CMFCCaptionBar::GetMargin
キャプション バー要素の端とキャプション バー コントロールの端との間の距離を返します。
int GetMargin() const;
戻り値
キャプション バー要素の端とキャプション バー コントロールの端との間の距離 (ピクセル単位)。
CMFCCaptionBar::IsMessageBarMode
キャプション バーがメッセージ バー モードかどうかを指定します。
BOOL IsMessageBarMode() const;
戻り値
キャプション バーがメッセージ バー モードの場合は TRUE。それ以外の場合は FALSE。
解説
メッセージ バー モードでは、キャプション バーにヒント、メッセージ テキスト、ボタンを含む画像が表示されます。
CMFCCaptionBar::m_clrBarBackground
キャプション バーの背景色。
COLORREF m_clrBarBackground
CMFCCaptionBar::m_clrBarBorder
キャプション バーの境界線の色。
COLORREF m_clrBarBorder
CMFCCaptionBar::m_clrBarText
キャプション バーのテキストの色。
COLORREF m_clrBarText
CMFCCaptionBar::OnDrawBackground
キャプション バーの背景を埋めるためにフレームワークによって呼び出されます。
virtual void OnDrawBackground(
CDC* pDC,
CRect rect);
パラメーター
pDC
[in]キャプション バーのデバイス コンテキストへのポインター。
rect
[in]塗りつぶす外接する四角形。
解説
OnDrawBackground
メソッドは、キャプション バーの背景が塗りつぶされようとしているときに呼び出されます。 既定の実装では、 CMFCCaptionBar::m_clrBarBackground 色を使用して背景を塗りつぶします。
キャプション バーの外観をカスタマイズするには、 CMFCCaptionBar
派生クラスでこのメソッドをオーバーライドします。
CMFCCaptionBar::OnDrawBorder
キャプション バーの境界線を描画するためにフレームワークによって呼び出されます。
virtual void OnDrawBorder(
CDC* pDC,
CRect rect);
パラメーター
pDC
[in]罫線を表示するために使用されるデバイス コンテキスト。
rect
[in]外接する四角形。
解説
既定では、罫線にはフラット スタイルが適用されます。
キャプション バーの境界線の外観をカスタマイズするには、 CMFCCaptionBar
派生クラスでこのメソッドをオーバーライドします。
CMFCCaptionBar::OnDrawButton
キャプション バー ボタンを描画するためにフレームワークによって呼び出されます。
virtual void OnDrawButton(
CDC* pDC,
CRect rect,
const CString& strButton,
BOOL bEnabled);
パラメーター
pDC
[in]ボタンの表示に使用されるデバイス コンテキストへのポインター。
rect
[in]ボタンの外接する四角形。
strButton
[in]ボタンのテキスト ラベル。
bEnabled
[in]ボタンが有効な場合は TRUE。それ以外の場合は FALSE。
解説
キャプション バーのボタンの外観をカスタマイズするには、 CMFCCaptionBar
派生クラスでこのメソッドをオーバーライドします。
CMFCCaptionBar::OnDrawImage
キャプション バーイメージを描画するためにフレームワークによって呼び出されます。
virtual void OnDrawImage(
CDC* pDC,
CRect rect);
パラメーター
pDC
[in]イメージの表示に使用されるデバイス コンテキストへのポインター。
rect
[in]イメージの外接する四角形を指定します。
解説
イメージの外観をカスタマイズするには、 CMFCCaptionBar
派生クラスでこのメソッドをオーバーライドします。
CMFCCaptionBar::OnDrawText
キャプション バーのテキストを描画するためにフレームワークによって呼び出されます。
virtual void OnDrawText(
CDC* pDC,
CRect rect,
const CString& strText);
パラメーター
pDC
[in]ボタンの表示に使用されるデバイス コンテキストへのポインター。
rect
[in]テキストの外接する四角形。
strText
[in]表示するテキスト文字列。
解説
既定の実装では、 CDC::DrawText
と CMFCCaptionBar::m_clrBarText 色を使用してテキストが表示されます。
キャプション バーのテキストの外観をカスタマイズするには、 CMFCCaptionBar
派生クラスでこのメソッドをオーバーライドします。
CMFCCaptionBar::RemoveBitmap
キャプション バーからビットマップ イメージを削除します。
void RemoveBitmap();
CMFCCaptionBar::RemoveButton
キャプション バーからボタンを削除します。
void RemoveButton();
解説
キャプション バー要素のレイアウトは自動的に調整されます。
CMFCCaptionBar::RemoveIcon
キャプション バーからアイコンを削除します。
void RemoveIcon();
CMFCCaptionBar::RemoveText
キャプション バーからテキスト ラベルを削除します。
void RemoveText();
CMFCCaptionBar::SetBitmap
キャプション バーのビットマップイメージを設定します。
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);
パラメーター
hBitmap
[in]設定するビットマップのハンドル。
clrTransparent
[in]ビットマップの透明な色を指定する RGB 値。
bStretch
[in]TRUE の場合、ビットマップはイメージの外接する四角形に収まらない場合に引き伸ばされます。 それ以外の場合、ビットマップは引き伸ばされません。
bmpAlignment
[in]ビットマップの配置。
解説
キャプション バーにビットマップを設定するには、このメソッドを使用します。
前のビットマップは自動的に破棄されます。 CMFCCaptionBar::SetIcon メソッドを呼び出したためにキャプション バーにアイコンが表示された場合、CMFCCaptionBar::RemoveIcon を呼び出してアイコンを削除しない限り、ビットマップは表示されません。
ビットマップは、 bmpAlignment パラメーターで指定されたとおりに配置されます。 このパラメーターには、次の BarElementAlignment
値のいずれかを指定できます。
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER
CMFCCaptionBar::SetBorderSize
キャプション バーの境界線のサイズを設定します。
void SetBorderSize(int nSize);
パラメーター
nSize
[in]キャプション バーの境界線の新しいサイズ (ピクセル単位)。
CMFCCaptionBar::SetButton
キャプション バーのボタンを設定します。
void SetButton(
LPCTSTR lpszLabel,
UINT uiCmdUI,
BarElementAlignment btnAlignmnet=ALIGN_LEFT,
BOOL bHasDropDownArrow=TRUE);
パラメーター
lpszLabel
ボタンのコマンド ラベル。
uiCmdUI
ボタンのコマンド ID。
btnAlignmnet
ボタンの配置。
bHasDropDownArrow
ボタンにドロップダウン矢印が表示される場合は TRUE、それ以外の場合は FALSE。
CMFCCaptionBar::SetButtonPressed
ボタンを押したままにするかどうかを指定します。
void SetButtonPressed(BOOL bPresed=TRUE);
パラメーター
bPresed
ボタンが押された状態を維持する場合は TRUE、それ以外の場合は FALSE。
CMFCCaptionBar::SetButtonToolTip
ボタンのヒントを設定します。
void SetButtonToolTip(
LPCTSTR lpszToolTip,
LPCTSTR lpszDescription=NULL);
パラメーター
lpszToolTip
[in]ヒントのキャプション。
lpszDescription
[in]ツールヒントの説明。
CMFCCaptionBar::SetFlatBorder
キャプション バーの罫線のスタイルを設定します。
void SetFlatBorder(BOOL bFlat=TRUE);
パラメーター
bFlat
[in]キャプション バーの境界線がフラットの場合は TRUE。 罫線が 3D の場合は FALSE。
CMFCCaptionBar::SetIcon
キャプション バーのアイコンを設定します。
void SetIcon(
HICON hIcon,
BarElementAlignment iconAlignment=ALIGN_RIGHT);
パラメーター
hIcon
[in]設定するアイコンのハンドル。
iconAlignment
[in]アイコンの配置。
解説
キャプション バーには、アイコンまたはビットマップを表示できます。 ビットマップの表示方法については、 CMFCCaptionBar::SetBitmap を参照してください。 アイコンとビットマップの両方を設定すると、アイコンは常に表示されます。 CMFCCaptionBar::RemoveIcon を呼び出して、キャプション バーからアイコンを削除します。
アイコンは、 iconAlignment パラメーターに従って配置されます。 次のいずれかの BarElementAlignment
値を指定できます。
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER
CMFCCaptionBar::SetImageToolTip
キャプション バーの画像のヒントを設定します。
void SetImageToolTip(
LPCTSTR lpszToolTip,
LPCTSTR lpszDescription=NULL);
パラメーター
lpszToolTip
[in]ヒントのテキスト。
lpszDescription
[in]ツールヒントの説明。
CMFCCaptionBar::SetMargin
キャプション バー要素の端とキャプション バー コントロールの端との間の距離を設定します。
void SetMargin(int nMargin);
パラメーター
nMargin
[in]キャプション バー要素の端とキャプション バー コントロールの端との間の距離 (ピクセル単位)。
CMFCCaptionBar::SetText
キャプション バーのテキスト ラベルを設定します。
void SetText(
const CString& strText,
BarElementAlignment textAlignment=ALIGN_RIGHT);
パラメーター
strText
[in]設定するテキスト文字列。
textAlignment
[in]テキストの配置。
解説
テキスト ラベルは、 textAlignment パラメーターで指定されているように配置されます。 次のいずれかの BarElementAlignment
値を指定できます。
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER