描画情報Menuコントロール
[詳解]
#include <TnbMfcDrawingMenu.h>
|
void | AdditionRelatedHwnd (HWND hWnd) |
| [追加] 関連Windowハンドル追加 [詳解]
|
|
BOOL | AppendDrawingMenu (UINT nFlags, const IDrawable &draw, LPCSTR lpszText=NULL, UINT_PTR nIDNewItem=0) |
| [追加] メニュー追加. [詳解]
|
|
| CAbstractDrawingMenu (void) |
| コンストラクタ [詳解]
|
|
void | CopyParameter (const CAbstractDrawingMenu &o) |
| [設定] 設定の複製. [詳解]
|
|
virtual void | DrawItem (LPDRAWITEMSTRUCT lpDrawItemStruct) |
| [通知] オーナードロー処理. [詳解]
|
|
HWND | GetParentHwnd (void) const |
| [取得] 親ウィンドウハンドル取得. [詳解]
|
|
BOOL | InsertDrawingMenu (UINT nPosition, UINT nFlags, const IDrawable &draw, LPCSTR lpszText=NULL, UINT_PTR nIDNewItem=0) |
| [追加] メニュー追加. [詳解]
|
|
bool | IsValid (void) const |
| [確認] 有効確認. [詳解]
|
|
virtual void | MeasureItem (LPMEASUREITEMSTRUCT lpMeasureItemStruct) |
| [通知] オーナードロー時. [詳解]
|
|
void | PostMessageToRelatedHwnd (UINT message, WPARAM wParam=0, LPARAM lParam=0) |
| [処理] 関連Windowハンドルへポスト [詳解]
|
|
void | SetBackColor (COLORREF color) |
| [設定] 背景色設定. [詳解]
|
|
bool | SetBackgroundDrawer (const IDrawable &draw) |
| [設定] 背景描画指定. [詳解]
|
|
void | SetDefaultMarkDrawer (COLORREF base=::GetSysColor(COLOR_MENU)) |
| [設定] デフォルトのマーク描画指定. [詳解]
|
|
bool | SetDisabledStyleDrawer (const IDrawable &draw) |
| [設定] 無効状態描画指定. [詳解]
|
|
bool | SetFocusMarkDrawer (const IDrawable &draw) |
| [設定] フォーカスマーク描画指定. [詳解]
|
|
void | SetLeftMargin (int m) |
| [設定] 文字表示位置指定 [詳解]
|
|
bool | SetSelectMarkDrawer (const IDrawable &draw, ESelectMarkType type=OVERLAP) |
| [設定] 選択マーク描画指定. [詳解]
|
|
bool | SetSelectMarkDrawer (const IDrawable &draw1, const IDrawable &draw2, ESelectMarkType type=OVERLAP) |
| [設定] 選択マーク描画指定. [詳解]
|
|
void | SetTextColor (COLORREF color1, COLORREF color2=CLR_INVALID) |
| [設定] 文字色指定 [詳解]
|
|
void | SetTextDrawer (const CTextDrawer &text) |
| [設定] テキスト描画情報指定 [詳解]
|
|
void | SetTextFont (HFONT font) |
| [設定] 文字フォント指定 [詳解]
|
|
| ~CAbstractDrawingMenu (void) |
| デストラクタ [詳解]
|
|
|
void | AllReset (void) |
| [設定] 全設定リセット. [詳解]
|
|
void | BeginItemPaint (void) |
| [処理] 描画開始. [詳解]
|
|
void | DrawBackColor (HDC dc, const RECT &rect) |
| [描画] 背景色描画 [詳解]
|
|
void | DrawBackground (HDC dc, const RECT &rect, LPARAM lParam=0) |
| [描画] 背景表示 [詳解]
|
|
void | DrawDisabledStyle (HDC dc, const RECT &rect, LPARAM lParam=0) |
| [描画] 無効状態描画. [詳解]
|
|
void | DrawFocusMark (HDC dc, const RECT &rect, LPARAM lParam=0) |
| [描画] フォーカスマーク表示 [詳解]
|
|
void | DrawSelectMark (HDC dc, const RECT &rect, bool isActive, LPARAM lParam=0) |
| [描画] 選択マーク表示 [詳解]
|
|
void | DrawText (HDC dc, const RECT &rect, LPCTSTR lpsz, DWORD drawStyle, LPARAM lParam=0) |
| [描画] 文字列描画 [詳解]
|
|
void | DrawText (HDC dc, const RECT &rect, LPCTSTR lpsz, LPARAM lParam=0) |
| [描画] 文字列描画 [詳解]
|
|
bool | EndItemPaint (void) |
| [処理] 描画終了. [詳解]
|
|
COLORREF | GetBackColor (void) const |
| [取得] 背景色取得. [詳解]
|
|
ESelectMarkType | GetSelectMarkType (void) const |
| [取得] セレクトマークタイプ [詳解]
|
|
DWORD | GetTextDrawStyle (void) const |
| [取得] 文字列描画スタイル取得. [詳解]
|
|
virtual void | OnFoundSubMenu (HMENU hMenu, COwnerdrawMenuSupportProcedureHooker *pProc)=0 |
| [通知] サブメニュ発見. [詳解]
|
|
void | Regist (COwnerdrawMenuSupportProcedureHooker *pProc, bool isAllOwnerDraw=true, bool withSubMenu=true) |
| [設定] 登録. [詳解]
|
|
void | SetDefaultTextDrawer (CWnd *pWnd) |
| [設定] テキスト描画情報設定. [詳解]
|
|
描画情報Menuコントロール
- 覚え書き
- SetSelectMarkDrawer() のアクティブ選択マークは Hover時、 非アクティブ選択マークは選択時に使用されます。
- todo:
現在、文字と背景の色のみ変更可能です。
WM_MEASUREITEM にメニューハンドル情報がないため、UserData などで一元管理する必要あり。
- 必要ファイル
- TnbMfcDrawingMenu.h
- 日付
- 08/10/09 新規作成
-
10/04/19 サブメニュー対応
-
10/05/13 フォント改修
-
12/11/06 ステータス取得方法を改善。
TnbMfcDrawingMenu.h の 194 行目に定義があります。
◆ ESelectMarkType
◆ CAbstractDrawingMenu()
◆ ~CAbstractDrawingMenu()
◆ AdditionRelatedHwnd()
void AdditionRelatedHwnd |
( |
HWND |
hWnd | ) |
|
|
inherited |
◆ AllReset()
◆ AppendDrawingMenu()
BOOL AppendDrawingMenu |
( |
UINT |
nFlags, |
|
|
const IDrawable & |
draw, |
|
|
LPCSTR |
lpszText = NULL , |
|
|
UINT_PTR |
nIDNewItem = 0 |
|
) |
| |
[追加] メニュー追加.
- 引数
-
nFlags | メニュー状態。以下の値を一つ以上指定できます。
MF_CHECKED MF_UNCHECKED とトグルで動作します。既定のチェック マークを項目の隣に付けます。
MF_UNCHECKED MF_CHECKED とトグルで動作します。項目の隣からチェック マークを削除します。
MF_DISABLED メニュー項目を選択できないようにしますが、淡色表示にはしません。
MF_ENABLED メニュー項目を選択できるようにして、淡色表示から元の表示に戻します。
MF_GRAYED メニュー項目を選択できないようにして、淡色表示にします。
MF_MENUBARBREAK スタティック メニューの新しい行、またはポップアップ メニューの新しい桁位置に項目を置きます。 ポップアップ メニューの新しい桁位置と古い桁位置を縦線で分けます。
MF_MENUBREAK スタティック メニューの新しい行、またはポップアップ メニューの新しい桁位置に項目を置きます。 桁位置の間には分割線は描かれません。
※ MF_OWNERDRAW , MF_SEPARATOR , MF_STRING は指定できません。 |
draw | 描画情報。 |
lpszText | 文字。 |
nIDNewItem | 新しいメニュー項目のコマンド ID を指定します。 nFlags の設定が MF_POPUP になっているときは、ポップアップ メニューのメニュー ハンドル (HMENU) を指定します。 |
- 戻り値
-
TnbMfcDrawingMenu.h の 317 行目に定義があります。
◆ BeginItemPaint()
void BeginItemPaint |
( |
void |
| ) |
|
|
protectedinherited |
◆ CopyParameter()
◆ DrawBackColor()
void DrawBackColor |
( |
HDC |
dc, |
|
|
const RECT & |
rect |
|
) |
| |
|
protectedinherited |
◆ DrawBackground()
void DrawBackground |
( |
HDC |
dc, |
|
|
const RECT & |
rect, |
|
|
LPARAM |
lParam = 0 |
|
) |
| |
|
protectedinherited |
◆ DrawDisabledStyle()
void DrawDisabledStyle |
( |
HDC |
dc, |
|
|
const RECT & |
rect, |
|
|
LPARAM |
lParam = 0 |
|
) |
| |
|
protectedinherited |
◆ DrawFocusMark()
void DrawFocusMark |
( |
HDC |
dc, |
|
|
const RECT & |
rect, |
|
|
LPARAM |
lParam = 0 |
|
) |
| |
|
protectedinherited |
◆ DrawItem()
virtual void DrawItem |
( |
LPDRAWITEMSTRUCT |
lpDrawItemStruct | ) |
|
|
virtual |
◆ DrawSelectMark()
void DrawSelectMark |
( |
HDC |
dc, |
|
|
const RECT & |
rect, |
|
|
bool |
isActive, |
|
|
LPARAM |
lParam = 0 |
|
) |
| |
|
protectedinherited |
◆ DrawText() [1/2]
void DrawText |
( |
HDC |
dc, |
|
|
const RECT & |
rect, |
|
|
LPCTSTR |
lpsz, |
|
|
DWORD |
drawStyle, |
|
|
LPARAM |
lParam = 0 |
|
) |
| |
|
protectedinherited |
◆ DrawText() [2/2]
void DrawText |
( |
HDC |
dc, |
|
|
const RECT & |
rect, |
|
|
LPCTSTR |
lpsz, |
|
|
LPARAM |
lParam = 0 |
|
) |
| |
|
protectedinherited |
◆ EndItemPaint()
bool EndItemPaint |
( |
void |
| ) |
|
|
protectedinherited |
◆ GetBackColor()
COLORREF GetBackColor |
( |
void |
| ) |
const |
|
protectedinherited |
◆ GetParentHwnd()
HWND GetParentHwnd |
( |
void |
| ) |
const |
◆ GetSelectMarkType()
◆ GetTextDrawStyle()
DWORD GetTextDrawStyle |
( |
void |
| ) |
const |
|
protectedinherited |
◆ InsertDrawingMenu()
BOOL InsertDrawingMenu |
( |
UINT |
nPosition, |
|
|
UINT |
nFlags, |
|
|
const IDrawable & |
draw, |
|
|
LPCSTR |
lpszText = NULL , |
|
|
UINT_PTR |
nIDNewItem = 0 |
|
) |
| |
[追加] メニュー追加.
- 引数
-
nPosition | 直前に新しいメニュー項目が挿入される、メニュー項目を指定します。nPosition の解釈は、次に挙げる nFlags の設定により決まります。 |
nFlags | メニュー状態。 AppendDrawingMenu() の nFlags 以外に値を一つ指定します。
MF_BYCOMMAND パラメータを既存のメニュー項目のコマンド ID で指定することを示します。MF_BYCOMMAND と MF_BYPOSITION がどちらも設定されていないときの既定の設定になります。 MF_BYPOSITION パラメータを既存のメニュー項目の位置で指定することを示します。最初の項目位置は 0 です。nPosition が -1 のときは、新しいメニュー項目はメニューの最後に追加されます。 |
draw | 描画情報。 |
lpszText | 文字。 |
nIDNewItem | 新しいメニュー項目のコマンド ID を指定します。 nFlags の設定が MF_POPUP になっているときは、ポップアップ メニューのメニュー ハンドル (HMENU) を指定します。 |
- 戻り値
-
TnbMfcDrawingMenu.h の 335 行目に定義があります。
◆ IsValid()
bool IsValid |
( |
void |
| ) |
const |
◆ MeasureItem()
virtual void MeasureItem |
( |
LPMEASUREITEMSTRUCT |
lpMeasureItemStruct | ) |
|
|
virtual |
◆ OnFoundSubMenu()
◆ PostMessageToRelatedHwnd()
void PostMessageToRelatedHwnd |
( |
UINT |
message, |
|
|
WPARAM |
wParam = 0 , |
|
|
LPARAM |
lParam = 0 |
|
) |
| |
|
inherited |
◆ Regist()
[設定] 登録.
- 引数
-
pProc | 親となるプロシージャ |
isAllOwnerDraw | true を指定するとアタッチしたアイテム、すべてオーナードロー属性を付加します。 |
withSubMenu | true を指定すると、サブメニューも、すべてオーナードロー属性を付加します。 |
TnbMfcDrawingMenu.h の 545 行目に定義があります。
◆ SetBackColor()
void SetBackColor |
( |
COLORREF |
color | ) |
|
|
inherited |
◆ SetBackgroundDrawer()
bool SetBackgroundDrawer |
( |
const IDrawable & |
draw | ) |
|
|
inherited |
◆ SetDefaultMarkDrawer()
void SetDefaultMarkDrawer |
( |
COLORREF |
base = ::GetSysColor(COLOR_MENU) | ) |
|
[設定] デフォルトのマーク描画指定.
- 覚え書き
- フォーカスマーク、選択マークをWindow標準と同じ様にします。
- 引数
-
base | 元の絵の背景に当たる色。 CLR_INVALID を指定すると、左下の色をそれとする。 |
TnbMfcDrawingMenu.h の 272 行目に定義があります。
◆ SetDefaultTextDrawer()
void SetDefaultTextDrawer |
( |
CWnd * |
pWnd | ) |
|
|
protectedinherited |
◆ SetDisabledStyleDrawer()
bool SetDisabledStyleDrawer |
( |
const IDrawable & |
draw | ) |
|
|
inherited |
◆ SetFocusMarkDrawer()
bool SetFocusMarkDrawer |
( |
const IDrawable & |
draw | ) |
|
|
inherited |
◆ SetLeftMargin()
void SetLeftMargin |
( |
int |
m | ) |
|
◆ SetSelectMarkDrawer() [1/2]
[設定] 選択マーク描画指定.
- 覚え書き
- アクティブ時と非アクティブ時で同じ選択マークを使います。
- 引数
-
draw | Resize() が有効な選択マークの描画情報。 |
type | 選択マークのタイプ。省略すると、 OVERLAP になります。 |
- 戻り値
-
TnbMfcAbstractDrawingCtrl.h の 105 行目に定義があります。
◆ SetSelectMarkDrawer() [2/2]
[設定] 選択マーク描画指定.
- 引数
-
draw1 | Resize() が有効なアクティブ時の選択マークの描画情報。 |
draw2 | Resize() が有効な非アクティブ時の選択マークの描画情報。 |
type | 選択マークのタイプ。省略すると、 OVERLAP になります。 |
- 戻り値
-
TnbMfcAbstractDrawingCtrl.h の 124 行目に定義があります。
◆ SetTextColor()
void SetTextColor |
( |
COLORREF |
color1, |
|
|
COLORREF |
color2 = CLR_INVALID |
|
) |
| |
◆ SetTextDrawer()
◆ SetTextFont()
void SetTextFont |
( |
HFONT |
font | ) |
|