CMFCStatusBar クラス
CMFCStatusBar
クラスは、CStatusBar
クラスと同様のステータス バーを実装します。 ただし、CMFCStatusBar
クラスには、イメージ、アニメーション、およびプログレス バーを表示する機能や、マウスのダブルクリックに応答する機能など、CStatusBar
クラスでは提供されない機能が含まれています。
詳細については、Visual Studio のインストールの VC\atlmfc\src\mfc フォルダーにあるソース コードを参照してください。
構文
class CMFCStatusBar : public CPane
メンバー
パブリック メソッド
保護メソッド
名前 | 説明 |
---|---|
CMFCStatusBar::OnDrawPane | フレームワークがステータス バーのウィンドウを再描画するときに呼び出されます。 |
解説
次の図は、 Status Bar Demo サンプル アプリケーションのステータス バーの図を示しています。
例
次の例は、アプリケーションが CMFCStatusBar
クラスのさまざまなメソッドを呼び出すために使用するローカル変数を示しています。 これらの変数は StatusBarDemoView.h で宣言されています。 メイン フレームは MainFrm.h で宣言され、ドキュメントは StatusBarDemoDoc.h で宣言され、ビューは StatusBarDemoView.h で宣言されます。 このコード スニペットは、 Status Bar Demo サンプルの一部です。
int m_nProgressCurr;
BOOL m_bInProgress;
CImageList m_imlStatusAnimation;
BOOL m_bInAnimation;
CBitmap m_bmpIcon1;
CBitmap m_bmpIcon2;
次の例では、MainFrm.h で GetStatusBar
メソッドを導入し、StatusBarDemoView.h の GetStatusBar
メソッドからこのメソッドを呼び出すことによって、CMFCStatusBar
オブジェクトへの参照を取得する方法を示します。 このコード スニペットは、 Status Bar Demo サンプルの一部です。
// in MainFrm.h
public:
CMFCStatusBar &GetStatusBar()
{
return m_wndStatusBar;
}
// in StatusBarDemoView.h
CMFCStatusBar &GetStatusBar() const
{
return ((CMainFrame *)AfxGetMainWnd())->GetStatusBar();
}
次の例では、StatusBarDemoView.cpp の CMFCStatusBar
クラスのさまざまなメソッドを呼び出す方法を示します。 定数は MainFrm.h で宣言されています。 この例では、アイコンの設定、ステータス バー ウィンドウのツールヒント テキストの設定、指定したペインへの進行状況バーの表示、指定したペインへのアニメーションの割り当て、ステータス バー ウィンドウのテキストと幅の設定、ステータス バー ウィンドウの進行状況バーの現在の進行状況インジケーターの設定を行う方法を示します。 このコード スニペットは、 Status Bar Demo サンプルの一部です。
// in MainFrm.h
const int nStatusIcon = 0;
const int nStatusInfo = 1;
const int nStatusProgress = 2;
const int nStatusLabel = 3;
const int nStatusAnimation = 4;
// in StatusBarDemoView.cpp
GetStatusBar().SetPaneIcon(nStatusIcon, m_bmpIcon1);
GetStatusBar().SetTipText(nStatusIcon, _T("This is a tooltip"));
GetStatusBar().EnablePaneProgressBar(nStatusProgress, PROGRESS_MAX);
GetStatusBar().SetPaneAnimation(nStatusAnimation, NULL);
GetStatusBar().SetPaneAnimation(nStatusAnimation, m_imlStatusAnimation);
GetStatusBar().SetPaneText(nStatusAnimation, _T(""));
GetStatusBar().SetPaneWidth(nStatusAnimation, 16);
GetStatusBar().SetPaneProgress(nStatusProgress, m_nProgressCurr);
継承階層
要件
Header: afxstatusbar.h
CMFCStatusBar::CalcFixedLayout
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
パラメーター
[入力] bStretch
[in] bHorz
戻り値
解説
CMFCStatusBar::CommandToIndex
int CommandToIndex(UINT nIDFind) const;
パラメーター
[入力] nIDFind
戻り値
解説
CMFCStatusBar::Create
BOOL Create(
CWnd* pParentWnd,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
パラメーター
[入力] pParentWnd
[入力] dwStyle
[入力] nID
戻り値
解説
CMFCStatusBar::CreateEx
BOOL CreateEx(
CWnd* pParentWnd,
DWORD dwCtrlStyle = 0,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
パラメーター
[入力] pParentWnd
[入力] dwCtrlStyle
[入力] dwStyle
[入力] nID
戻り値
解説
CMFCStatusBar::D oesAllowDynInsertBefore
virtual BOOL DoesAllowDynInsertBefore() const;
戻り値
解説
CMFCStatusBar::EnablePaneDoubleClick
ステータス バーのマウス ダブルクリックの処理を有効または無効にします。
void EnablePaneDoubleClick(BOOL bEnable=TRUE);
パラメーター
bEnable
[in]TRUE の場合は、マウスのダブルクリックの処理を有効にします。 それ以外の場合は、マウスのダブルクリックの処理を無効にします。
解説
ステータス バーでダブルクリックの処理が有効になっている場合、ユーザーがステータス バー ウィンドウをダブルクリックするたびに、リソース ID と共にWM_COMMAND通知がステータス バーの所有者に送信されます。
CMFCStatusBar::EnablePaneProgressBar
指定したウィンドウに進行状況バーを表示します。
void EnablePaneProgressBar(
int nIndex,
long nTotal=100,
BOOL bDisplayText=FALSE,
COLORREF clrBar=-1,
COLORREF clrBarDest=-1,
COLORREF clrProgressText=-1);
パラメーター
nIndex
[in]進行状況バーを有効にするペインのインデックスを指定します。
nTotal
[in]進行状況バーの最大値を指定します。
bDisplayText
[in]進行状況バーに現在の進行状況の値を表示するかどうかを指定します。
clrBar
[in]進行状況バーの背景色を指定します。
clrBarDest
[in]進行状況バーの背景の 2 番目の色を指定します。 グラデーションにブレンドされた色で塗りつぶすには、 clrBar とは異なる値を使用します。
clrProgressText
[in]進行状況バーのテキストの色を指定します。
解説
nTotal で進行状況バーの呼び出しEnablePaneProgressBar
を無効にする場合は -1 に設定します。 既定では、 nTotal は 100 に設定されています。 そのため、進行状況をパーセンテージで表示するために追加の計算は必要ありません。
進行状況バーの背景色にグラデーションにブレンドされた色が表示されるように、 clrBar と clrBarDest に異なる値を渡す必要があります。 .
現在の進行状況を設定するには、 CMFCStatusBar::SetPaneProgress メソッドを呼び出します。
CMFCStatusBar::GetCount
ステータス バーのペインの数を取得します。
int GetCount() const;
戻り値
ステータス バーのペインの数。
CMFCStatusBar::GetDrawExtendedArea
BOOL GetDrawExtendedArea() const;
戻り値
解説
CMFCStatusBar::GetExtendedArea
virtual BOOL GetExtendedArea(CRect& rect) const;
パラメーター
[in] rect
戻り値
解説
CMFCStatusBar::GetItemID
UINT GetItemID(int nIndex) const;
パラメーター
[入力] nIndex
戻り値
解説
CMFCStatusBar::GetItemRect
void GetItemRect(
int nIndex,
LPRECT lpRect) const;
パラメーター
[入力] nIndex
[入力] lpRect
解説
CMFCStatusBar::GetPaneInfo
void GetPaneInfo(
int nIndex,
UINT& nID,
UINT& nStyle,
int& cxWidth) const;
パラメーター
[入力] nIndex
[入力] nID
[入力] nStyle
[入力] cxWidth
解説
CMFCStatusBar::GetPaneProgress
long GetPaneProgress(int nIndex) const;
パラメーター
[入力] nIndex
戻り値
解説
CMFCStatusBar::GetPaneStyle
UINT GetPaneStyle(int nIndex) const;
パラメーター
[入力] nIndex
戻り値
解説
CMFCStatusBar::GetPaneText
void GetPaneText(
int nIndex,
CString& s) const;
CString GetPaneText(int nIndex) const;
パラメーター
[入力] nIndex
[入力] s
戻り値
解説
CMFCStatusBar::GetPaneWidth
ステータス バーのウィンドウの幅を取得します。
int GetPaneWidth(int nIndex) const;
パラメーター
nIndex
[in]ステータス バー ウィンドウのインデックスを指定します。
戻り値
nIndex が指定するステータス バー ウィンドウの幅。それ以外の場合は、ステータス バー ウィンドウが存在しない場合は 0。
CMFCStatusBar::GetTipText
ステータス バーのウィンドウのツールヒント テキストを取得します。
CString GetTipText(int nIndex) const;
パラメーター
nIndex
[in]ツール ヒント テキストを取得するペインのインデックスを指定します。
戻り値
nIndexが指定するステータス バー ウィンドウのツールヒント テキスト。 それ以外の場合は、指定した nIndex のステータス バー ウィンドウが存在しない場合、またはそのヒント テキストが空の場合は、空の文字列。
CMFCStatusBar::InvalidatePaneContent
ステータス バー ウィンドウを無効にし、その内容を再描画します。
void InvalidatePaneContent(int nIndex);
パラメーター
nIndex
[in]コンテンツを無効にして再描画するペインのインデックスを指定します。
解説
ステータス バーが無効になると、再描画のマークが付けられます。 UpdateWindow
メソッドがWM_PAINT メッセージを OnPaint
メソッドに送信すると、Windows によって再描画されます。
CMFCStatusBar::OnDrawPane
ステータス バーのウィンドウを再描画します。
virtual void OnDrawPane(
CDC* pDC,
CMFCStatusBarPaneInfo* pPane);
パラメーター
pDC
[in]描画用のデバイス コンテキストへのポインター。
pPane
[in]再描画するペインに関する情報を含む CMFCStatusBarPaneInfo
構造体へのポインター。
解説
既定では、OnDrawPane
は、ウィンドウのスタイルとコンテンツに応じてデバイス コンテキスト pDC を使用してペインを再描画します。
ウィンドウの外観をカスタマイズするには、 CMFCStatusBar
派生クラスでこのメソッドをオーバーライドします。
CMFCStatusBar::P reCreateWindow
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
パラメーター
[入力] cs
戻り値
解説
CMFCStatusBar::SetDrawExtendedArea
void SetDrawExtendedArea(BOOL bSet = TRUE);
パラメーター
[入力] bSet
解説
CMFCStatusBar::SetIndicators
BOOL SetIndicators(
const UINT* lpIDArray,
int nIDCount);
パラメーター
[入力] lpIDArray
[入力] nIDCount
戻り値
解説
CMFCStatusBar::SetPaneAnimation
指定したペインにアニメーションを割り当てます。
void SetPaneAnimation(
int nIndex,
HIMAGELIST hImageList,
UINT nFrameRate=500,
BOOL bUpdate=TRUE);
パラメーター
nIndex
[in]アニメーションに割り当てるペインのインデックスを指定します。
hImageList
[in]アニメーション フレームを保持するイメージ リストへのハンドルを指定します。
nFrameRate
[in]アニメーションのフレーム レートをミリ秒単位で指定します。
bUpdate
[in]TRUE の場合は、すぐにペインの内容を更新します。 それ以外の場合、ペインの内容は無効になると更新されます。
解説
現在のアニメーションを無効にする場合は、hImageList
を NULL に設定してSetPaneAnimation
を呼び出します。
CMFCStatusBar::SetPaneBackgroundColor
ステータス バー ウィンドウの背景色を設定します。
void SetPaneBackgroundColor(
int nIndex,
COLORREF clrBackground=(COLORREF)-1,
BOOL bUpdate=TRUE);
パラメーター
nIndex
[in]新しい背景色を設定するペインのインデックスを指定します。
clrBackground
[in] 新しい背景色を指定します。
bUpdate
[in]TRUE の場合は、すぐにペインの内容を更新します。 それ以外の場合は、別のメソッドによってペインが無効になるまで、ペインの内容を更新しないでください。
CMFCStatusBar::SetPaneIcon
ステータス バー ウィンドウのアイコンを設定します。
void SetPaneIcon(
int nIndex,
HICON hIcon,
BOOL bUpdate=TRUE);
void SetPaneIcon(
int nIndex,
HBITMAP hBmp,
COLORREF clrTransparent=RGB(255, 0, 255),
BOOL bUpdate=TRUE);
パラメーター
nIndex
[in]イメージを設定するペインのインデックスを指定します。
hIcon
[in]ウィンドウ イメージとして設定するアイコンのハンドルを指定します。
bUpdate
[in]ペインの内容を直ちに更新するかどうかを指定します。
hBmp
[in]ペイン イメージとして設定するビットマップのハンドルを指定します。
clrTransparent
[in] hBmp が示すビットマップの透明な色を指定します。
解説
HICON または HBITMAP を透明な色と共に渡して、ペインの画像を設定できます。 イメージを表示しない場合は、イメージ ハンドルとして NULL 値を渡します。
CMFCStatusBar::SetPaneAnimation が設定した実行中のアニメーションがある場合、アニメーションは停止します。
CMFCStatusBar::SetPaneInfo
void SetPaneInfo(
int nIndex,
UINT nID,
UINT nStyle,
int cxWidth);
パラメーター
[入力] nIndex
[入力] nID
[入力] nStyle
[入力] cxWidth
解説
CMFCStatusBar::SetPaneProgress
指定したペインの進行状況バーの現在の進行状況インジケーターを設定します。
void SetPaneProgress(
int nIndex,
long nCurr,
BOOL bUpdate=TRUE);
パラメーター
nIndex
[in]進行状況インジケーターを更新するペインのインデックスを指定します。
nCurr
[in]進行状況インジケーターの現在の値を指定します。
bUpdate
[in]ペインを直ちに更新するかどうかを指定します。
解説
指定したウィンドウの進行状況バーの進行状況インジケーターを更新する場合は、このメソッドを呼び出します。
特定のウィンドウでこの関数を使用するには、最初に CMFCStatusBar::EnablePaneProgressBar を呼び出す必要があります。
CMFCStatusBar::SetPaneStyle
void SetPaneStyle(
int nIndex,
UINT nStyle);
パラメーター
[入力] nIndex
[入力] nStyle
解説
CMFCStatusBar::SetPaneText
virtual BOOL SetPaneText(
int nIndex,
LPCTSTR lpszNewText,
BOOL bUpdate = TRUE);
パラメーター
[入力] nIndex
[入力] lpszNewText
[入力] bUpdate
戻り値
解説
CMFCStatusBar::SetPaneTextColor
指定したペインのテキストの色を設定します。
void SetPaneTextColor(
int nIndex,
COLORREF clrText=(COLORREF)-1,
BOOL bUpdate=TRUE);
パラメーター
nIndex
[in]新しいテキストの色を割り当てるペインのインデックスを指定します。
clrText
[in]テキストの色を指定します。
bUpdate
[in]TRUE の場合は、すぐにペインの内容を更新します。 それ以外の場合は、別のメソッドによってペインが無効になるまで、ペインの内容を更新しないでください。
CMFCStatusBar::SetPaneWidth
ステータス バー ウィンドウの幅を設定します。
void SetPaneWidth(
int nIndex,
int cx);
パラメーター
nIndex
[in]新しい幅を設定するステータス バー ウィンドウのインデックス。
cx
[in]ステータス バー ウィンドウの新しい幅 (ピクセル単位)。
CMFCStatusBar::SetTipText
ステータス バー ウィンドウのツールヒント テキストを設定します。
void SetTipText(
int nIndex,
LPCTSTR pszTipText);
パラメーター
nIndex
[in]ツールヒント テキストを割り当てるペインのインデックス。
pszTipText
[in]新しいツールヒントテキスト。