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;
}
継承階層
必要条件
ヘッダー: 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、システムの色を表示するには FAL Standard Edition。
解説
ユーザーがカラー メニュー ボタンをクリックしたときに、現在のドキュメントの色またはシステム パレットの色を表示するには、このメソッドを使用します。
CMFCColorMenuButton::EnableOtherButton
通常のカラー ボタンの下に配置されている "その他" ボタンを有効または無効にします。 (標準システムの "その他" ボタンにラベルが付けられます 。その他の色)。)
void EnableOtherButton(
LPCTSTR lpszLabel,
BOOL bAltColorDlg=TRUE,
BOOL bEnable=TRUE);
パラメーター
lpszLabel
[in]ボタンのテキストを指定します。
bAltColorDlg
[in]ダイアログ ボックスをCMFCColorDialog
表示するには TRUE を指定し、標準のシステム カラー ダイアログ ボックスを表示するには FAL Standard Edition を指定します。
bEnable
[in]"other" ボタンを表示するには TRUE を指定します。それ以外の場合は FAL Standard Edition。 既定値は 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 によって 設定された自動色を取得するには、このメソッドを呼び出します。
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。それ以外の場合は FAL Standard Edition。 既定値は TRUE です。
bCustomizeMode
[in]アプリケーションがカスタマイズ モードであることを指定する場合は TRUE。それ以外の場合は FAL Standard Edition。 既定値は FAL Standard Edition です。
bHighlight
[in]ボタンが強調表示されていることを指定する場合は TRUE。それ以外の場合は FAL Standard Edition。 既定値は FAL Standard Edition です。
bDrawBorder
[in]ボタンの境界線が表示されることを指定する場合は TRUE。それ以外の場合は FAL Standard Edition。 既定値は TRUE です。
bGrayDisabledButtons
[in]無効なボタンが淡色表示 (淡色表示) されることを指定する場合は TRUE。それ以外の場合は FAL Standard Edition。 既定値は TRUE です。
解説
CMFCColorMenuButton::OnDrawOnCustomizeList
ツール バーのカスタマイズ ダイアログ ボックスの一覧に CMFCColorMenuButton
オブジェクトが表示される前に、フレームワークによって呼び出されます。
virtual int OnDrawOnCustomizeList(
CDC* pDC,
const CRect& rect,
BOOL bSelected);
パラメーター
pDC
[入力] デバイス コンテキストへのポインター。
rect
[in]描画するボタンを囲む四角形。
bSelected
[in]TRUE は、ボタンが選択された状態であることを指定します。それ以外の場合は FAL Standard Edition。
戻り値
ボタンの幅。
解説
このメソッドは、ツール バーのカスタマイズ プロセス中に 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。それ以外の場合は FAL Standard Edition。
解説
現在の色ボタンの色を変更するには、このメソッドを呼び出します。 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 クラス
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示