カスタムウィンドウフレームマスタークラス.
[詳解]
#include <TnbMfcCustomWindowFrameMaster.h>
|
| bool | Attach (HWND hWnd) |
| | [設定] アタッチ [詳解]
|
| |
| | CCustomWindowFrameMaster (void) |
| | コンストラクタ [詳解]
|
| |
| void | CopyParameter (const CCustomWindowFrame &o) |
| | [設定] 設定の複製. [詳解]
|
| |
| void | Destroy (void) |
| | [設定] 破棄 [詳解]
|
| |
| void | Detach (void) |
| | [設定] デタッチ [詳解]
|
| |
| HBRUSH | GetBackground (bool isActive) |
| | [取得] 背景ブラシ取得 [詳解]
|
| |
| DWORD | GetExStyle (void) const |
| | [取得] 拡張スタイル取得 [詳解]
|
| |
| HWND | GetSafeHwnd (void) const |
| | [取得] ウィンドウハンドル取得 [詳解]
|
| |
| DWORD | GetStyle (void) const |
| | [取得] スタイル取得 [詳解]
|
| |
| void | Hook (bool isDisableVista=false) |
| | [設定] フック. [詳解]
|
| |
| bool | IsAttached (void) const |
| | [確認] アタッチ中? [詳解]
|
| |
| void | ModifyStyle (DWORD dwRemove, DWORD dwAdd) |
| | [変更] スタイル変更 [詳解]
|
| |
| void | ModifyStyleEx (DWORD dwRemove, DWORD dwAdd) |
| | [変更] 拡張スタイル変更 [詳解]
|
| |
| BOOL | PostMessage (UINT message, WPARAM wParam, LPARAM lParam) |
| | [処理] PostMessage. [詳解]
|
| |
| CDrawingMenuBar & | ReferMenuBar (void) |
| | [参照] メニューバー参照. [詳解]
|
| |
| CDrawingMenu & | ReferPopupMenu (void) |
| | [参照] メニューバー参照. [詳解]
|
| |
| DWORD | RegisterMenu (CMenu *pMenu) |
| | [登録] メニュー登録. [詳解]
|
| |
| LRESULT | SendMessage (UINT message, WPARAM wParam, LPARAM lParam) |
| | [処理] SendMessage. [詳解]
|
| |
| void | SetCloseButtonBitmap (const POINT &pos, CBitmapHandle bmp, int num=4, COLORREF color=CLR_INVALID) |
| | [設定] Closeボタン設定 [詳解]
|
| |
| void | SetFrameBitmap (CBitmapHandle bmp) |
| | [設定] フレームビットマップ設定 [詳解]
|
| |
| void | SetFrameBitmap (CBitmapHandle bmp1, CBitmapHandle bmp2) |
| | [設定] フレームビットマップ設定 [詳解]
|
| |
| void | SetFrameBitmap (const IDrawable &draw, CBitmapHandle bmp) |
| | [設定] フレームビットマップ設定 [詳解]
|
| |
| void | SetFrameTransColor (COLORREF color=CLR_AUTOSELECT) |
| | [設定] 透過色指定 [詳解]
|
| |
| void | SetFrameWidths (const RECT &frameWidths, int titleHeight=-1) |
| | [設定] 大きさ設定. [詳解]
|
| |
| void | SetFrameWidths (int frameWidth=-1, int titleHeight=-1) |
| | [設定] 大きさ設定. [詳解]
|
| |
| void | SetHelpButtonBitmap (const POINT &pos, CBitmapHandle bmp, int num=4, COLORREF color=CLR_INVALID) |
| | [設定] Helpボタン設定 [詳解]
|
| |
| void | SetMaximumButtonBitmap (const POINT &pos, CBitmapHandle bmp, int num=4, COLORREF color=CLR_INVALID) |
| | [設定] Maximumボタン設定 [詳解]
|
| |
| void | SetMinimumButtonBitmap (const POINT &pos, CBitmapHandle bmp, int num=4, COLORREF color=CLR_INVALID) |
| | [設定] Minimumボタン設定 [詳解]
|
| |
| void | SetRestoreButtonBitmap (const POINT &pos, CBitmapHandle bmp, int num=4, COLORREF color=CLR_INVALID) |
| | [設定] Restoreボタン設定 [詳解]
|
| |
| void | SetTextColor (COLORREF color) |
| | [設定] テキスト色. [詳解]
|
| |
| void | SetTitleBitmap (const IDrawable &draw) |
| | [設定] タイトルバー描画情報指定. [詳解]
|
| |
| | ~CCustomWindowFrameMaster (void) |
| | デストラクタ [詳解]
|
| |
カスタムウィンドウフレームマスタークラス.
ダイアログの NonClient 部分を変更できます。また、透過色を指定し、矩形以外のフレームにも対応します。
- 覚え書き
- プロセスをローカルフックしているので、プロセスで表示される全ウィンドウの NonClient 部分を変更できます。
- 使用例
BOOL CFooApp::InitInstance()
{
;
CWindowCaptionDrawer ttd(NULL);
ttd.SetBarColor(RGB(255, 0, 0), RGB(0, 0, 0));
frame.SetTitleBitmap(ttd);
frame.SetFrameBitmap(IDB_FRAME);
frame.SetCloseButtonBitmap(CPoint(-6, 5), IDB_CLOSE, 4);
;
frame.Hook();
;
CCustomWindowFrameMaster(void)
コンストラクタ
- 必要ファイル
- TnbMfcCustomWindowFrameMaster.h
- 日付
- 08/10/06 新規作成
-
09/04/22 マップを CSimpleMap に変更
-
09/05/12 VISTA の場合、Hookしないように変更。
-
10/04/26 Hook のためのインスタンスは保持しておく必要をなくした。
TnbMfcCustomWindowFrameMaster.h の 64 行目に定義があります。
◆ CCustomWindowFrameMaster()
◆ ~CCustomWindowFrameMaster()
◆ Attach()
◆ CopyParameter()
◆ Destroy()
◆ Detach()
◆ GetBackground()
| HBRUSH GetBackground |
( |
bool |
isActive | ) |
|
|
inherited |
◆ GetExStyle()
| DWORD GetExStyle |
( |
void |
| ) |
const |
|
inherited |
◆ GetSafeHwnd()
| HWND GetSafeHwnd |
( |
void |
| ) |
const |
|
inherited |
◆ GetStyle()
| DWORD GetStyle |
( |
void |
| ) |
const |
|
inherited |
◆ Hook()
| void Hook |
( |
bool |
isDisableVista = false | ) |
|
[設定] フック.
プロセスで一つ、フック出来ます。本インスタンス破棄後も、フックは有効です。
- 引数
-
| isDisableVista | true を指定すると、 VISTA以降の場合、フックしません。 false を指定すると、 VISTA以降でも、フックします。 |
TnbMfcCustomWindowFrameMaster.h の 94 行目に定義があります。
◆ IsAttached()
| bool IsAttached |
( |
void |
| ) |
const |
|
inherited |
◆ ModifyStyle()
| void ModifyStyle |
( |
DWORD |
dwRemove, |
|
|
DWORD |
dwAdd |
|
) |
| |
|
inherited |
◆ ModifyStyleEx()
| void ModifyStyleEx |
( |
DWORD |
dwRemove, |
|
|
DWORD |
dwAdd |
|
) |
| |
|
inherited |
◆ OnAttached()
| virtual void OnAttached |
( |
void |
| ) |
|
|
protectedvirtualinherited |
◆ OnDetached()
| virtual void OnDetached |
( |
void |
| ) |
|
|
protectedvirtualinherited |
◆ OnDetacted()
| virtual void OnDetacted |
( |
void |
| ) |
|
|
protectedvirtualinherited |
◆ PostMessage()
| BOOL PostMessage |
( |
UINT |
message, |
|
|
WPARAM |
wParam, |
|
|
LPARAM |
lParam |
|
) |
| |
|
inherited |
◆ PreAttach()
| virtual void PreAttach |
( |
HWND |
hWnd | ) |
|
|
protectedvirtualinherited |
◆ PreDetach()
| virtual void PreDetach |
( |
void |
| ) |
|
|
protectedvirtualinherited |
◆ ReferMenuBar()
◆ ReferPopupMenu()
◆ RegisterMenu()
| DWORD RegisterMenu |
( |
CMenu * |
pMenu | ) |
|
|
inherited |
◆ SendMessage()
| LRESULT SendMessage |
( |
UINT |
message, |
|
|
WPARAM |
wParam, |
|
|
LPARAM |
lParam |
|
) |
| |
|
inherited |
◆ SetCloseButtonBitmap()
| void SetCloseButtonBitmap |
( |
const POINT & |
pos, |
|
|
CBitmapHandle |
bmp, |
|
|
int |
num = 4, |
|
|
COLORREF |
color = CLR_INVALID |
|
) |
| |
|
inherited |
[設定] Closeボタン設定
- 引数
-
| pos | ボタン位置。座標がマイナスの場合、右端(下端)からのオフセットになります。 |
| bmp | ボタン画像。同じ大きさの画像を、Normal,Press,Hover,Disable の順に横に並べた画像を指定します。 |
| num | ボタン画像の数。通常省略します(4になります)。 |
| color | 透過する色。 CLR_INVALID を指定すると、透過色はなし。 |
TnbMfcCustomWindowFrame.h の 374 行目に定義があります。
◆ SetFrameBitmap() [1/3]
◆ SetFrameBitmap() [2/3]
[設定] フレームビットマップ設定
- 引数
-
| bmp1 | アクティブ時の画像。この画像は 9分割され、それぞれの隅、枠、中央に使われます。 |
| bmp2 | 非アクティブ時の画像。この画像は 9分割され、それぞれの隅、枠、中央に使われます。 |
TnbMfcCustomWindowFrame.h の 281 行目に定義があります。
◆ SetFrameBitmap() [3/3]
◆ SetFrameTransColor()
| void SetFrameTransColor |
( |
COLORREF |
color = CLR_AUTOSELECT | ) |
|
|
inherited |
[設定] 透過色指定
- 覚え書き
- フレームビットマップの透過色を指定できます。これにより任意の形のウィンドウが作成できます。 本メソッドを使わない場合、デフォルトは矩形のウィンドウになります。
- 引数
-
| color | 透過色。 CLR_AUTOSELECT を使うと右下の色を透過色とします。 |
TnbMfcCustomWindowFrame.h の 311 行目に定義があります。
◆ SetFrameWidths() [1/2]
| void SetFrameWidths |
( |
const RECT & |
frameWidths, |
|
|
int |
titleHeight = -1 |
|
) |
| |
|
inherited |
[設定] 大きさ設定.
NonClientの上下左右の幅、および、タイトルバーの高さを指定します。
- 注意
- メニューがあるウィンドウの場合、本メソッドは正しく機能しません。メニュー無しの場合のみ使用してください。
- 引数
-
| frameWidths | NoClientの上下左右の幅(RECT本来の使い方ではない) |
| titleHeight | タイトルバーの高さ。省略するとシステムの高さが使われます。 |
TnbMfcCustomWindowFrame.h の 334 行目に定義があります。
◆ SetFrameWidths() [2/2]
| void SetFrameWidths |
( |
int |
frameWidth = -1, |
|
|
int |
titleHeight = -1 |
|
) |
| |
|
inherited |
[設定] 大きさ設定.
NonClientの上下左右の幅、および、タイトルバーの高さを指定します。
- 注意
- メニューがあるウィンドウの場合、本メソッドは正しく機能しません。メニュー無しの場合のみ使用してください。
- 引数
-
| frameWidth | NoClientの上下左右のすべての幅。省略するとシステムの幅が使われます。 |
| titleHeight | タイトルバーの高さ。省略するとシステムの高さが使われます。 |
TnbMfcCustomWindowFrame.h の 353 行目に定義があります。
◆ SetHelpButtonBitmap()
| void SetHelpButtonBitmap |
( |
const POINT & |
pos, |
|
|
CBitmapHandle |
bmp, |
|
|
int |
num = 4, |
|
|
COLORREF |
color = CLR_INVALID |
|
) |
| |
|
inherited |
[設定] Helpボタン設定
- 引数
-
| pos | ボタン位置。座標がマイナスの場合、右端(下端)からのオフセットになります。 |
| bmp | ボタン画像。同じ大きさの画像を、Normal,Press,Hover,Disable の順に横に並べた画像を指定します。 |
| num | ボタン画像の数。通常省略します(4になります)。 |
| color | 透過する色。 CLR_INVALID を指定すると、透過色はなし。 |
TnbMfcCustomWindowFrame.h の 426 行目に定義があります。
◆ SetMaximumButtonBitmap()
| void SetMaximumButtonBitmap |
( |
const POINT & |
pos, |
|
|
CBitmapHandle |
bmp, |
|
|
int |
num = 4, |
|
|
COLORREF |
color = CLR_INVALID |
|
) |
| |
|
inherited |
[設定] Maximumボタン設定
- 引数
-
| pos | ボタン位置。座標がマイナスの場合、右端(下端)からのオフセットになります。 |
| bmp | ボタン画像。同じ大きさの画像を、Normal,Press,Hover,Disable の順に横に並べた画像を指定します。 |
| num | ボタン画像の数。通常省略します(4になります)。 |
| color | 透過する色。 CLR_INVALID を指定すると、透過色はなし。 |
TnbMfcCustomWindowFrame.h の 400 行目に定義があります。
◆ SetMinimumButtonBitmap()
| void SetMinimumButtonBitmap |
( |
const POINT & |
pos, |
|
|
CBitmapHandle |
bmp, |
|
|
int |
num = 4, |
|
|
COLORREF |
color = CLR_INVALID |
|
) |
| |
|
inherited |
[設定] Minimumボタン設定
- 引数
-
| pos | ボタン位置。座標がマイナスの場合、右端(下端)からのオフセットになります。 |
| bmp | ボタン画像。同じ大きさの画像を、Normal,Press,Hover,Disable の順に横に並べた画像を指定します。 |
| num | ボタン画像の数。通常省略します(4になります)。 |
| color | 透過する色。 CLR_INVALID を指定すると、透過色はなし。 |
TnbMfcCustomWindowFrame.h の 387 行目に定義があります。
◆ SetRestoreButtonBitmap()
| void SetRestoreButtonBitmap |
( |
const POINT & |
pos, |
|
|
CBitmapHandle |
bmp, |
|
|
int |
num = 4, |
|
|
COLORREF |
color = CLR_INVALID |
|
) |
| |
|
inherited |
[設定] Restoreボタン設定
- 引数
-
| pos | ボタン位置。座標がマイナスの場合、右端(下端)からのオフセットになります。通常、Maximumボタンと同じ場所を指定します。 |
| bmp | ボタン画像。同じ大きさの画像を、Normal,Press,Hover,Disable の順に横に並べた画像を指定します。 |
| num | ボタン画像の数。通常省略します(4になります)。 |
| color | 透過する色。 CLR_INVALID を指定すると、透過色はなし。 |
TnbMfcCustomWindowFrame.h の 413 行目に定義があります。
◆ SetTextColor()
| void SetTextColor |
( |
COLORREF |
color | ) |
|
|
inherited |
◆ SetTitleBitmap()
| void SetTitleBitmap |
( |
const IDrawable & |
draw | ) |
|
|
inherited |
[設定] タイトルバー描画情報指定.
- 覚え書き
- フレームビットマップでタイトルを書くことも出来ますが、別途子のメソッドで指定することも出来ます。 指定しない場合、フレーム描画上に CWindowCaptionDrawer() でアイコンとウィンドウテキストが描画されます。
- 引数
-
TnbMfcCustomWindowFrame.h の 322 行目に定義があります。
◆ Unhook()
| static void Unhook |
( |
void |
| ) |
|
|
static |
◆ m_hWnd