CMFCColorMenuButton クラス
CMFCColorMenuButton
クラスは、カラー ピッカー ダイアログ ボックスを開始するメニュー コマンドまたはツール バー ボタンをサポートします。
構文
class CMFCColorMenuButton : public CMFCToolBarMenuButton
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CMFCColorMenuButton::CMFCColorMenuButton | CMFCColorMenuButton オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CMFCColorMenuButton::EnableAutomaticButton | 通常のカラー ボタンの上に配置される "自動" ボタンを有効または無効にします。 (標準システムの自動ボタンには、 ラベルが付けられます自動.) |
CMFCColorMenuButton::EnableDocumentColors | システムの色ではなく、ドキュメント固有の色の表示を有効にします。 |
CMFCColorMenuButton::EnableOtherButton | 通常のカラー ボタンの下に配置されている "その他" ボタンを有効または無効にします。 (標準システムの [その他] ボタンには、 ラベルが付けられますその他の色.) |
CMFCColorMenuButton::EnableTearOff | カラー ウィンドウを破棄する機能を有効にします。 |
CMFCColorMenuButton::GetAutomaticColor | 現在の自動色を取得します。 |
CMFCColorMenuButton::GetColor | 現在のボタンの色を取得します。 |
CMFCColorMenuButton::GetColorByCmdID | 指定したコマンド ID に対応する色を取得します。 |
CMFCColorMenuButton::OnChangeParentWnd | 親ウィンドウが変更されたときにフレームワークによって呼び出されます。 |
CMFCColorMenuButton::OpenColorDialog | 色選択ダイアログ ボックスを開きます。 |
CMFCColorMenuButton::SetColor | 現在の色ボタンの色を設定します。 |
CMFCColorMenuButton::SetColorByCmdID | 指定したカラー メニュー ボタンの色を設定します。 |
CMFCColorMenuButton::SetColorName | 指定した色の新しい名前を設定します。 |
CMFCColorMenuButton::SetColumnsNumber | CMFCColorBar オブジェクトによって表示される列の数を設定します。 |
保護メソッド
名前 | 説明 |
---|---|
CMFCColorMenuButton::CopyFrom | 別のツール バー ボタンを現在のボタンにコピーします。 |
CMFCColorMenuButton::CreatePopupMenu | カラー ピッカー ダイアログ ボックスを作成します。 |
CMFCColorMenuButton::IsEmptyMenuAllowed | 空のメニューがサポートされているかどうかを示します。 |
CMFCColorMenuButton::OnDraw | ボタンに画像を表示するためにフレームワークによって呼び出されます。 |
CMFCColorMenuButton::OnDrawOnCustomizeList | ツール バーのカスタマイズ ダイアログ ボックスの一覧に CMFCColorMenuButton オブジェクトが表示される前に、フレームワークによって呼び出されます。 |
解説
元のメニュー コマンドまたはツール バー ボタンをCMFCColorMenuButton
オブジェクトに置き換えるには、CMFCColorMenuButton
オブジェクトを作成し、適切な CMFCColorBar クラス スタイルを設定してから、CMFCToolBar クラス クラスのReplaceButton
メソッドを呼び出します。 ツール バーをカスタマイズする場合は、 CMFCToolBarsCustomizeDialog::ReplaceButton メソッドを呼び出します。
カラー ピッカー ダイアログ ボックスは、 CMFCColorMenuButton::CreatePopupMenu イベント ハンドラーの処理中に作成されます。 イベント ハンドラーは、WM_COMMAND メッセージを使用して親フレームに通知します。 CMFCColorMenuButton
オブジェクトは、元のメニュー コマンドまたはツール バー ボタンに割り当てられているコントロール ID を送信します。
例
次の例では、 CMFCColorMenuButton
クラスのさまざまなメソッドを使用して、カラー メニュー ボタンを作成および構成する方法を示します。 この例では、 CPalette
オブジェクトを最初に作成してから、 CMFCColorMenuButton
クラスのオブジェクトを構築するために使用します。 その後、 CMFCColorMenuButton
オブジェクトは、その自動ボタンとその他のボタンを有効にし、その色と列数を設定することによって構成されます。 このコードは、 Word Pad サンプルの一部です。
CPalette m_palColorPicker; // Palette for color picker
int m_nNumColours;
CMFCColorMenuButton *CFormatBar::CreateColorButton()
{
if (m_palColorPicker.GetSafeHandle() == NULL)
{
m_nNumColours = sizeof(crColours) / sizeof(ColourTableEntry);
ASSERT(m_nNumColours <= MAX_COLOURS);
if (m_nNumColours > MAX_COLOURS)
m_nNumColours = MAX_COLOURS;
// Create the palette
struct
{
LOGPALETTE LogPalette;
PALETTEENTRY PalEntry[MAX_COLOURS];
} pal;
LOGPALETTE *pLogPalette = (LOGPALETTE*)&pal;
pLogPalette->palVersion = 0x300;
pLogPalette->palNumEntries = (WORD)m_nNumColours;
for (int i = 0; i < m_nNumColours; i++)
{
pLogPalette->palPalEntry[i].peRed = GetRValue(crColours[i].crColour);
pLogPalette->palPalEntry[i].peGreen = GetGValue(crColours[i].crColour);
pLogPalette->palPalEntry[i].peBlue = GetBValue(crColours[i].crColour);
pLogPalette->palPalEntry[i].peFlags = 0;
}
m_palColorPicker.CreatePalette(pLogPalette);
}
CMFCColorMenuButton *pColorButton = new CMFCColorMenuButton(ID_CHAR_COLOR, _T("Text Color..."), &m_palColorPicker);
pColorButton->EnableAutomaticButton(_T("Automatic"), RGB(0, 0, 0));
pColorButton->EnableOtherButton(_T("More Colors..."));
pColorButton->EnableDocumentColors(_T("Document's Colors"));
pColorButton->EnableTearOff(ID_COLOR_TEAROFF, 5, 2);
pColorButton->SetColumnsNumber(8);
pColorButton->SetColor(RGB(0, 0, 255));
// Initialize color names:
for (int i = 0; i < m_nNumColours; i++)
{
CMFCColorMenuButton::SetColorName(crColours[i].crColour, crColours[i].szName);
}
return pColorButton;
}
継承階層
要件
Header: afxcolormenubutton.h
CMFCColorMenuButton::CMFCColorMenuButton
CMFCColorMenuButton
オブジェクトを構築します。
CMFCColorMenuButton();
CMFCColorMenuButton(
UINT uiCmdID,
LPCTSTR lpszText,
CPalette* pPalette=NULL);
パラメーター
uiCmdID
[in]ボタン コマンド ID。
lpszText
[in]ボタンのテキスト。
pPalette
[in]ボタンのカラー パレットへのポインター。
戻り値
解説
最初のコンストラクターは既定のコンストラクターです。 オブジェクトの現在の色と自動色は黒 (RGB(0, 0, 0)) に初期化されます。
2 番目のコンストラクターは、指定したコマンド ID に対応する色にボタンを初期化します。
CMFCColorMenuButton::CopyFrom
1 つの CMFCToolBarMenuButton クラス派生オブジェクトを別のオブジェクトにコピーします。
virtual void CopyFrom(const CMFCToolBarButton& src);
パラメーター
src
[in]コピーする [ソース] ボタン。
解説
CMFCColorMenuButton
オブジェクトから派生したオブジェクトをコピーするには、このメソッドをオーバーライドします。
CMFCColorMenuButton::CreatePopupMenu
カラー ピッカー ダイアログ ボックスを作成します。
virtual CMFCPopupMenu* CreatePopupMenu();
戻り値
カラー ピッカー ダイアログ ボックスを表すオブジェクト。
解説
このメソッドは、ユーザーがカラー メニュー ボタンを押すとフレームワークによって呼び出されます。
CMFCColorMenuButton::EnableAutomaticButton
通常のカラー ボタンの上に配置される "自動" ボタンを有効または無効にします。 (標準システムの自動ボタンには、 ラベルが付けられます自動.)
void EnableAutomaticButton(
LPCTSTR lpszLabel,
COLORREF colorAutomatic,
BOOL bEnable=TRUE);
パラメーター
lpszLabel
[in]ボタンが自動になったときに表示されるボタン テキストを指定します。
colorAutomatic
[in]新しい自動色を指定します。
bEnable
[in]ボタンが自動かどうかを指定します。
解説
自動ボタンは、現在の既定の色を適用します。
CMFCColorMenuButton::EnableDocumentColors
システムの色ではなく、ドキュメント固有の色の表示を有効にします。
void EnableDocumentColors(
LPCTSTR lpszLabel,
BOOL bEnable=TRUE);
パラメーター
lpszLabel
[in]ボタンのテキストを指定します。
bEnable
[in]ドキュメント固有の色を表示する場合は TRUE、システムの色を表示する場合は FALSE。
解説
ユーザーがカラー メニュー ボタンをクリックしたときに、現在のドキュメントの色またはシステム パレットの色を表示するには、このメソッドを使用します。
CMFCColorMenuButton::EnableOtherButton
通常のカラー ボタンの下に配置されている "その他" ボタンを有効または無効にします。 (標準システムの [その他] ボタンには、 ラベルが付けられますその他の色.)
void EnableOtherButton(
LPCTSTR lpszLabel,
BOOL bAltColorDlg=TRUE,
BOOL bEnable=TRUE);
パラメーター
lpszLabel
[in]ボタンのテキストを指定します。
bAltColorDlg
[in][ CMFCColorDialog
] ダイアログ ボックスを表示するには TRUE を指定し、標準システムの色ダイアログ ボックスを表示するには FALSE を指定します。
bEnable
[in]"other" ボタンを表示するには TRUE を指定します。それ以外の場合は FALSE。 既定は TRUE です。
解説
CMFCColorMenuButton::EnableTearOff
カラー ウィンドウを破棄する機能を有効にします。
void EnableTearOff(
UINT uiID,
int nVertDockColumns=-1,
int nHorzDockRows=-1);
パラメーター
uiID
[in]破棄ウィンドウの ID を指定します。
nVertDockColumns
[in]ティアオフ状態の垂直固定カラー ペインの列数を指定します。
nHorzDockRows
[in]ティアオフ状態の場合に、水平方向にドッキングされた色ペインの行数を指定します。
解説
このメソッドを呼び出して、 CMFCColorMenuButton
ボタンが押されたときにポップアップ表示されるカラー ウィンドウの "ティアオフ" 機能を有効にします。
CMFCColorMenuButton::GetAutomaticColor
現在の自動色を取得します。
COLORREF GetAutomaticColor() const;
戻り値
現在の自動色を表す RGB カラー値。
解説
このメソッドを呼び出して、 CMFCColorMenuButton::EnableAutomaticButton::EnableAutomaticButton によって設定される自動色を取得します。
CMFCColorMenuButton::GetColor
現在のボタンの色を取得します。
COLORREF GetColor() const;
戻り値
ボタンの色。
解説
CMFCColorMenuButton::GetColorByCmdID
指定したコマンド ID に対応する色を取得します。
static COLORREF GetColorByCmdID(UINT uiCmdID);
パラメーター
uiCmdID
[in]コマンド ID。
戻り値
指定したコマンド ID に対応する色。
解説
アプリケーションに複数のカラー ボタンがある場合は、このメソッドを使用します。 ユーザーがカラー ボタンをクリックすると、ボタンはWM_COMMAND メッセージ内のコマンド ID を親に送信します。 GetColorByCmdID
メソッドは、コマンド ID を使用して対応する色を取得します。
CMFCColorMenuButton::IsEmptyMenuAllowed
空のメニューがサポートされているかどうかを示します。
virtual BOOL IsEmptyMenuAllowed() const;
戻り値
空のメニューが許可されている場合は 0 以外。それ以外の場合は 0。
解説
空のメニューは、既定でサポートされています。 派生クラスでこの動作を変更するには、このメソッドをオーバーライドします。
CMFCColorMenuButton::OnChangeParentWnd
親ウィンドウが変更されたときにフレームワークによって呼び出されます。
virtual void OnChangeParentWnd(CWnd* pWndParent);
パラメーター
pWndParent
[in]新しい親ウィンドウへのポインター。
解説
CMFCColorMenuButton::OnDraw
ボタンに画像を表示するためにフレームワークによって呼び出されます。
virtual void OnDraw(
CDC* pDC,
const CRect& rect,
CMFCToolBarImages* pImages,
BOOL bHorz=TRUE,
BOOL bCustomizeMode=FALSE,
BOOL bHighlight=FALSE,
BOOL bDrawBorder=TRUE,
BOOL bGrayDisabledButtons=TRUE);
パラメーター
pDC
[入力] デバイス コンテキストへのポインター。
rect
[in]再描画する領域を囲む四角形。
pImages
[in]ツール バーイメージの一覧をポイントします。
bHorz
[in]ツールバーが水平ドッキング状態であることを指定する場合は TRUE。それ以外の場合は FALSE。 既定は TRUE です。
bCustomizeMode
[in]アプリケーションがカスタマイズ モードであることを指定する場合は TRUE。それ以外の場合は FALSE。 既定値は FALSE です。
bHighlight
[in]ボタンが強調表示されていることを指定する場合は TRUE。それ以外の場合は FALSE。 既定値は FALSE です。
bDrawBorder
[in]ボタンの境界線が表示されることを指定する場合は TRUE。それ以外の場合は FALSE。 既定は TRUE です。
bGrayDisabledButtons
[in]無効なボタンが淡色表示 (淡色表示) されることを指定する場合は TRUE。それ以外の場合は FALSE。 既定は TRUE です。
解説
CMFCColorMenuButton::OnDrawOnCustomizeList
ツール バーのカスタマイズ ダイアログ ボックスの一覧に CMFCColorMenuButton
オブジェクトが表示される前に、フレームワークによって呼び出されます。
virtual int OnDrawOnCustomizeList(
CDC* pDC,
const CRect& rect,
BOOL bSelected);
パラメーター
pDC
[入力] デバイス コンテキストへのポインター。
rect
[in]描画するボタンを囲む四角形。
bSelected
[in]TRUE は、ボタンが選択された状態であることを指定します。それ以外の場合は FALSE。
戻り値
ボタンの幅。
解説
このメソッドは、ツール バーのカスタマイズ プロセス中に CMFCColorMenuButton
オブジェクトがリスト ボックスに表示されるときに、フレームワークによって呼び出されます。
CMFCColorMenuButton::OpenColorDialog
色選択ダイアログ ボックスを開きます。
virtual BOOL OpenColorDialog(
const COLORREF colorDefault,
COLORREF& colorRes);
パラメーター
colorDefault
[in][色] ダイアログ ボックスで選択されている既定の色。
colorRes
[out]ユーザーが [色] ダイアログ ボックスから選択した色を返します。
戻り値
ユーザーが新しい色を選択した場合は 0 以外。それ以外の場合は 0。
解説
メニュー ボタンがクリックされたら、このメソッドを呼び出して、色のダイアログ ボックスを開きます。 戻り値が 0 以外の場合、ユーザーが選択した色は colorRes パラメーターに格納されます。 CMFCColorMenuButton::EnableOtherButton メソッドを使用して、標準の色ダイアログ ボックスと CMFCColorDialog クラス ダイアログ ボックスを切り替えます。
CMFCColorMenuButton::SetColor
現在の色ボタンの色を設定します。
virtual void SetColor(
COLORREF clr,
BOOL bNotify=TRUE);
パラメーター
clr
[in]RGB カラー値。
bNotify
[in]関連付けられているメニュー ボタンまたはツール バー ボタンに clr パラメーターの色を適用する場合は TRUE。それ以外の場合は FALSE。
解説
現在の色ボタンの色を変更するには、このメソッドを呼び出します。 bNotify パラメーターが 0 以外の場合、関連付けられているポップアップ メニューまたはツール バーの対応するボタンの色が、clr パラメーターで指定された色に変更されます。
CMFCColorMenuButton::SetColorByCmdID
指定したカラー メニュー ボタンの色を設定します。
static void SetColorByCmdID(
UINT uiCmdID,
COLORREF color);
パラメーター
uiCmdID
[in]カラー メニュー ボタンのリソース ID。
color
[in]RGB カラー値。
CMFCColorMenuButton::SetColorName
指定した色の新しい名前を設定します。
static void SetColorName(
COLORREF color,
const CString& strName);
パラメーター
color
[in]名前が変更される色の RGB 値。
strName
[in]色の新しい名前。
解説
CMFCColorMenuButton::SetColumnsNumber
カラー選択コントロール ( CMFCColorBar オブジェクト) に表示する列の数を設定します。
void SetColumnsNumber(int nColumns);
パラメーター
nColumns
[in]表示する列の数。
解説
関連項目
階層図
クラス
CMFCColorBar クラス
CMFCToolBar クラス
CMFCToolBarsCustomizeDialog クラス
CMFCColorButton クラス