|
TNB Library
|
自由型ビットマップボタンコントロール [詳解]
#include <TnbMfcRgnButton.h>
CRgnButton の継承関係図公開型 | |
| enum | EPressMode { PM_Unused , PM_Message , PM_Lockable } |
| プレスモード種 [詳解] | |
公開メンバ関数 | |
| CRgnButton (void) | |
| コンストラクタ [詳解] | |
| DWORD | GetExStyle (void) const |
| [取得] ウィンドウ拡張スタイル取得. [詳解] | |
| HWND | GetSafeHwnd (void) const |
| [取得] ウィンドウハンドル取得. [詳解] | |
| UINT | GetState (void) const |
| [取得] 状態取得. [詳解] | |
| DWORD | GetStyle (void) const |
| [取得] ウィンドウスタイル取得. [詳解] | |
| BOOL | ModifyStyle (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0) |
| [設定] ウィンドウスタイル変更. [詳解] | |
| BOOL | ModifyStyleEx (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0) |
| [設定] ウィンドウ拡張スタイル変更. [詳解] | |
| CRgnButton & | operator= (const CRgnButton &other) |
| [複製] 情報コピー. [詳解] | |
| bool | SetAllBitmaps (CBitmapHandle bmp, COLORREF color=CLR_AUTOSELECT) |
| [設定] ビットマップ指定. [詳解] | |
| bool | SetBitmap (CBitmapHandle bmp, COLORREF color=CLR_AUTOSELECT) |
| [設定] ベースビットマップ指定. [詳解] | |
| void | SetBitmapChangeTime (UINT ms) |
| [設定] ビットマップ切り替え時間設定. [詳解] | |
| void | SetDefaultButtonStyle (void) |
| [設定] デフォルトボタンスタイル設定. [詳解] | |
| void | SetDisableBitmap (CBitmapHandle bmp) |
| [設定] 無効状態ビットマップ指定. [詳解] | |
| void | SetFocusBitmap (CBitmapHandle bmp) |
| [設定] フォーカス状態ビットマップ指定. [詳解] | |
| void | SetFocusMarkBitmap (CBitmapHandle bmp, COLORREF color=CLR_AUTOSELECT) |
| [設定] フォーカス状態マークビットマップ指定. [詳解] | |
| void | SetHoverBitmap (CBitmapHandle bmp) |
| [設定] ホバー状態ビットマップ指定. [詳解] | |
| void | SetPressedMode (bool isEnable) |
| [設定] プレスモード設定. [詳解] | |
| void | SetPressedMode (EPressMode pm) |
| [設定] プレスモード設定. [詳解] | |
| void | SetPushedBitmap (CBitmapHandle bmp) |
| [設定] 押下状態ビットマップ指定. [詳解] | |
| void | SetPushedMarkOffset (const POINT &pos) |
| [設定] 押下時表示ずれ設定. [詳解] | |
| void | SetShortcutKey (TCHAR key) |
| [設定] ショートカットキー設定. [詳解] | |
| void | SetValidRgn (HRGN h) |
| [設定] ボタン有効範囲指定. [詳解] | |
| BOOL | SetWindowPos (const CWnd *pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags) |
| [設定] ウィンドウサイズポジション設定. [詳解] | |
| BOOL | ShowWindow (int nCmdShow) |
| [設定] ウィンドウ表示状態. [詳解] | |
| virtual | ~CRgnButton (void) |
| デストラクタ [詳解] | |
限定公開型 | |
| enum | EState { ES_Normal , ES_Hover , ES_Pushed , ES_Disable } |
| 状態 [詳解] | |
限定公開メンバ関数 | |
| EState | GetButtonState (void) const |
| [取得] ボタン状態取得. [詳解] | |
| virtual bool | HasFocus (void) const |
| [確認] フォーカスの有無 [詳解] | |
| virtual bool | IsOnButton (const POINT &po) const |
| [確認] ポイントがボタン上にあるか. [詳解] | |
| virtual void | OnChangeState (EState state) |
| [通知] 状態変化通知. [詳解] | |
| virtual EState | OnCheckState (EState st) |
| [通知] 現在の状態確認通知 [詳解] | |
| virtual BOOL | OnChildNotify (UINT message, WPARAM wParam, LPARAM lParam, LRESULT *_pResult) |
| [通知] for notifications from parent [詳解] | |
| virtual void | OnClickButton (void) |
| [通知] クリック. [詳解] | |
| virtual void | OnDrawButton (CDC *pDC) |
| [通知] 描画 [詳解] | |
| virtual void | OnDrawingButton (CPoint &_pos, CDC *pDC, bool boIsFirst) |
| [通知] 描画中. [詳解] | |
| virtual void | PreSubclassWindow (void) |
| [通知] subclassing/unsubclassing functions. [詳解] | |
| void | SetButtonState (EState s) |
| [設定] ボタン状態設定. [詳解] | |
| void | SetSendDblClkMode (bool canSendDblClk) |
| [設定] ダブルクリックイベントサポート [詳解] | |
| virtual LRESULT | WindowProc (UINT message, WPARAM wParam, LPARAM lParam) |
| [通知] for processing Windows messages. [詳解] | |
限定公開変数類 | |
| CBitmapHandle | m_bmpButtons [4] |
| 「通常」「ホバー」「押下」[無効」状態のBITMAP. [詳解] | |
| CBitmapImage | m_focusBitmap |
| フォーカス(マーク)BITMAP [詳解] | |
| COLORREF | m_focusMaskColor |
| フォーカスマークの透過色(-1ならフォーカスはマークではなく直書き) [詳解] | |
自由型ビットマップボタンコントロール
ビットマップの形に合わせたボタンを作成することが出来ます。 ボタンに使用するベースビットマップとなる「通常状態」を必ず指定する必要があります (この「通常状態」のビットマップの形状が、ボタンの形状になります)。 このビットマップは、 SetBitmap() で指定するか、 リソースエディタでピクチャーコントロールのプロパティで、タイプに「ビットマップ」を選択し、 イメージでビットマップの選択をしておきます(後者の場合リソースにビットマップをおく必要あり)。 他に、「無効状態」「押下状態」「ホバー状態」とフォーカスのビットマップを指定することが 出来ます。 フォーカスの表現方法は2種類あり、一つは「フォーカス状態」として、他の状態と同じように表示する方法、 もう一つは、「他のボタンの上にオーバーラップして表示」する方法です。前者は SetFocusBitmap() 、 後者は SetFocusMarkBitmap() で指定します(後で設定したほうが適用されます)。
TnbMfcRgnButton.h の 70 行目に定義があります。
|
inherited |
プレスモード種
| 列挙値 | |
|---|---|
| PM_Unused | 通常ボタン |
| PM_Message | プレスメッセージ対応 |
| PM_Lockable | プレスロック機能も有効 |
TnbMfcAbstractButton.h の 165 行目に定義があります。
|
protectedinherited |
状態
| 列挙値 | |
|---|---|
| ES_Normal | 標準状態 |
| ES_Hover | ホバー状態 |
| ES_Pushed | 押下状態 |
| ES_Disable | 無効状態 |
TnbMfcAbstractButton.h の 199 行目に定義があります。
|
virtual |
デストラクタ
TnbMfcRgnButton.h の 290 行目に定義があります。
| CRgnButton | ( | void | ) |
コンストラクタ
TnbMfcRgnButton.h の 296 行目に定義があります。
|
protectedinherited |
|
inherited |
[取得] ウィンドウ拡張スタイル取得.
本インスタンスが管理しているウィンドウの拡張スタイルを返します。
|
inherited |
[取得] ウィンドウハンドル取得.
本インスタンスが管理しているウィンドウのハンドルを返します。
|
inherited |
[取得] 状態取得.
オプション ボタンまたはチェック ボックスの状態を取得します。
| マスク | 説明 |
| 0x0003 | オン、オフ状態を調べます (オプション ボタンとチェック ボックスの場合だけ)。 0 のときは、ボタンはオフです。1 のときは、ボタンはオンです。オプション ボタンはチェック マーク (?) が付いている状態がオンです。チェック ボックスは X マークが付いている状態がオンです。2 は、チェック状態が不確定であることを示します (3 ステート チェック ボックスのみ)。 3 ステート チェック ボックスは淡色表示状態のとき不確定状態を示します。 |
| 0x0004 | 強調表示状態を調べます。0 以外の値のときは、ボタンが強調表示状態です。 マウスの左ボタンをクリックしたままにすると、ボタンは強調表示状態になります。 マウス ボタンを離すと、強調表示状態は解除されます。 |
| 0x0008 | フォーカス状態を調べます。0 以外の値のときは、ボタンにフォーカスがあることを示します。 |
TnbMfcAbstractButton.h の 158 行目に定義があります。
|
inherited |
[取得] ウィンドウスタイル取得.
本インスタンスが管理しているウィンドウのスタイルを返します。
|
protectedvirtualinherited |
[確認] フォーカスの有無
| true | フォーカスあり。 |
| false | フォーカスなし。 |
CDrawingButtonTxで再実装されています。
TnbMfcAbstractButton.h の 298 行目に定義があります。
|
protectedvirtualinherited |
|
inherited |
[設定] ウィンドウスタイル変更.
| dwRemove | 除去するスタイルを指定する。 |
| dwAdd | 追加するスタイルを指定する。 |
| nFlags | SetWindowPos() に渡すフラグ。0なら SetWindowPos() を呼びません。 |
| TRUE | 成功. |
| FALSE | 失敗. |
|
inherited |
[設定] ウィンドウ拡張スタイル変更.
| dwRemove | 除去する拡張スタイルを指定する。 |
| dwAdd | 追加する拡張スタイルを指定する。 |
| nFlags | SetWindowPos() に渡すフラグ。0なら SetWindowPos() を呼びません。 |
| TRUE | 成功. |
| FALSE | 失敗. |
|
protectedvirtualinherited |
[通知] 状態変化通知.
| state | 状態。 |
CDrawingButton, CLinkText, CTransparentButtonで再実装されています。
TnbMfcAbstractButton.h の 316 行目に定義があります。
|
protectedvirtualinherited |
[通知] for notifications from parent
| [in] | message | メッセージ |
| [in] | wParam | WPARAM |
| [in] | lParam | LPARAM |
| [out] | _pResult | リザルト |
| TRUE | 処理済。 |
| FALSE | 未処理。 |
TnbMfcAbstractButton.h の 332 行目に定義があります。
|
protectedvirtualinherited |
[通知] クリック.
BN_CLICKED を親に通知する前にコールされます。
CColorSelectButton, CDrawingButton, CHyperLinkTextで再実装されています。
TnbMfcAbstractButton.h の 307 行目に定義があります。
|
protectedvirtual |
|
protectedvirtual |
[通知] 描画中.
Bitmap表示の前後にコールされます。
| [in,out] | _pos | 表示位置。 |
| [in] | pDC | 描画先のCDC。 |
| [in] | boIsFirst | Bitmap表示前は true、表示後は false で通知されます。 |
CRgnButtonTxで再実装されています。
TnbMfcRgnButton.h の 159 行目に定義があります。
| CRgnButton & operator= | ( | const CRgnButton & | other | ) |
[複製] 情報コピー.
保持している情報を複製します。
| other | コピー元 |
TnbMfcRgnButton.h の 309 行目に定義があります。
|
protectedvirtual |
[通知] subclassing/unsubclassing functions.
サブクラス化する時コールされます。
CAbstractButtonを再実装しています。
CRgnButtonTxで再実装されています。
TnbMfcRgnButton.h の 257 行目に定義があります。
| bool SetAllBitmaps | ( | CBitmapHandle | bmp, |
| COLORREF | color = CLR_AUTOSELECT |
||
| ) |
[設定] ビットマップ指定.
「通常状態」「ホバー状態」「押下状態」[無効状態」「フォーカス状態」を表すビットマップを同時に指定します。
| bmp | ビットマップ。 |
| color | 透過色指定。省略すると、ビットマップの左下の色を透過色とします。 CLR_INVALID を指定すると透過色なしになります。 |
| true | 成功。 |
| false | 失敗。ハンドルが無効です。 |
TnbMfcRgnButton.h の 468 行目に定義があります。
| bool SetBitmap | ( | CBitmapHandle | bmp, |
| COLORREF | color = CLR_AUTOSELECT |
||
| ) |
[設定] ベースビットマップ指定.
ボタンのベースとなるビットマップを指定します。このビットマップでボタンの形が確定されます。
| bmp | ビットマップ。 |
| color | 透過色指定。省略すると、ビットマップの左下の色が透過色とします。 CLR_INVALID を指定すると透過色なしになります。 |
| true | 成功。 |
| false | 失敗。ハンドルが無効です。 |
TnbMfcRgnButton.h の 364 行目に定義があります。
| void SetBitmapChangeTime | ( | UINT | ms | ) |
[設定] ビットマップ切り替え時間設定.
状態が変わってビットマップを変更する時、デフォルトでは、切り替え前のビットマップと、 切り替え後のビットマップの50%合成の画像を 30ms 秒表示するようになっています(そのため ふわっと切り替わるように見えます)。この切り替え時間を本メソッドで指定することが出来ます。
| ms | 切り替え時間(単位 ms)。 |
TnbMfcRgnButton.h の 349 行目に定義があります。
|
protectedinherited |
|
inherited |
[設定] デフォルトボタンスタイル設定.
本ボタンにデフォルトボタンスタイルをつけます。
TnbMfcAbstractButton.h の 127 行目に定義があります。
| void SetDisableBitmap | ( | CBitmapHandle | bmp | ) |
[設定] 無効状態ビットマップ指定.
無効状態を表すビットマップを指定します。 ベースとなるビットマップと同じ大きさにする必要があります。
| bmp | ビットマップ。 |
TnbMfcRgnButton.h の 396 行目に定義があります。
| void SetFocusBitmap | ( | CBitmapHandle | bmp | ) |
[設定] フォーカス状態ビットマップ指定.
フォーカス状態を表すビットマップを指定します。 ベースとなるビットマップと同じ大きさにする必要があります。
| bmp | ビットマップ。 |
TnbMfcRgnButton.h の 419 行目に定義があります。
| void SetFocusMarkBitmap | ( | CBitmapHandle | bmp, |
| COLORREF | color = CLR_AUTOSELECT |
||
| ) |
[設定] フォーカス状態マークビットマップ指定.
フォーカス状態を表すマークのビットマップを指定します。 他のビットマップの上に表示されるものになります。 SetPushedMarkOffset() の設定の影響を受けます。
| bmp | ビットマップハンドル。ハンドルは不必要になったら自動的に破棄します。 |
| color | 透過色指定。省略すると、ビットマップの左下の色を透過色とします。 |
TnbMfcRgnButton.h の 434 行目に定義があります。
| void SetHoverBitmap | ( | CBitmapHandle | bmp | ) |
[設定] ホバー状態ビットマップ指定.
ホバー状態を表すビットマップを指定します。 ベースとなるビットマップと同じ大きさにする必要があります。
| bmp | ビットマップ。 |
TnbMfcRgnButton.h の 407 行目に定義があります。
|
inherited |
[設定] プレスモード設定.
プレスロックモード付きのボタンにすることが出来ます。 プレスモードにすると、プレスすると親ウィンドウに BN_PUSHED_T が、 リリースすると BN_UNPUSHED_T が通知されます。
| isEnable | true ならプレスモード。 false なら通常ボタンにします。 |
TnbMfcAbstractButton.h の 179 行目に定義があります。
|
inherited |
[設定] プレスモード設定.
プレスメッセージ、プレスロックモード付きのボタンにすることが出来ます。 プレスモードにすると、プレスすると親ウィンドウに BN_PUSHED_T が、 リリースすると BN_UNPUSHED_T が通知されます。
| pm | プレスモード |
TnbMfcAbstractButton.h の 191 行目に定義があります。
| void SetPushedBitmap | ( | CBitmapHandle | bmp | ) |
[設定] 押下状態ビットマップ指定.
押下状態を表すビットマップを指定します。 ベースとなるビットマップと同じ大きさにする必要があります。
| bmp | ビットマップ。 |
TnbMfcRgnButton.h の 385 行目に定義があります。
| void SetPushedMarkOffset | ( | const POINT & | pos | ) |
[設定] 押下時表示ずれ設定.
押下時にフォーカスマークのずれを指定することが出来ます。デフォルトでは、移動なしです(0,0)。
| pos | ずれ |
TnbMfcRgnButton.h の 452 行目に定義があります。
|
protectedinherited |
[設定] ダブルクリックイベントサポート
| canSendDblClk | true なら、 BN_DOUBLECLICKED を親に通知するようになります。 |
TnbMfcAbstractButton.h の 232 行目に定義があります。
|
inherited |
[設定] ショートカットキー設定.
フォーカスが無いときでもキーボードの ALT + で押せるショートカットキーに対応するキーを指定します。 指定しない場合、ショートカットは出来ません。
| key | キー。 'A' 〜 'Z' を指定します。 |
TnbMfcAbstractButton.h の 117 行目に定義があります。
| void SetValidRgn | ( | HRGN | h | ) |
[設定] ボタン有効範囲指定.
ボタンの押下処理の行われる範囲を指定することが出来ます。描画は四角くなります。
| h | リージョンハンドル。 ハンドルは内部で複製しますので、破棄してかまいません。 |
TnbMfcRgnButton.h の 506 行目に定義があります。
|
inherited |
[設定] ウィンドウサイズポジション設定.
子ウィンドウ、ポップアップ ウィンドウ、およびトップレベル ウィンドウのサイズ、位置、および Z オーダーを変更します。
| pWndInsertAfter | Z オーダーでこの CWnd オブジェクトより前に配置される CWnd オブジェクトを識別します。このパラメータへは、 CWnd へのポインタか 次の値のいずれか 1 つを指定できます。
|
| x | ウィンドウの新しい左辺の位置を指定します。 |
| y | ウィンドウの新しい上辺の位置を指定します。 |
| cx | ウィンドウの新しい幅を指定します。 |
| cy | ウィンドウの新しい高さを指定します。 |
| nFlags | サイズ変更オプションおよび位置指定オプションを指定します。このパラメータには、次の値を組み合わせて指定できます。
|
| TRUE | 成功. |
| FALSE | 失敗. |
|
inherited |
[設定] ウィンドウ表示状態.
| nCmdShow | CWnd を表示する方法を指定します。次の値のいずれかになります。
|
| TRUE | 成功. |
| FALSE | 失敗. |
|
protectedvirtual |
[通知] for processing Windows messages.
メッセージ受信したらコールされます。
| message | メッセージ |
| wParam | WPARAM |
| lParam | LPARAM |
CAbstractButtonを再実装しています。
CRgnButtonTx, CRgnSemitransparentButtonT< MODE, PAR >で再実装されています。
TnbMfcRgnButton.h の 213 行目に定義があります。
|
protected |
「通常」「ホバー」「押下」[無効」状態のBITMAP.
TnbMfcRgnButton.h の 148 行目に定義があります。
|
protected |
フォーカス(マーク)BITMAP
TnbMfcRgnButton.h の 149 行目に定義があります。
|
protected |
フォーカスマークの透過色(-1ならフォーカスはマークではなく直書き)
TnbMfcRgnButton.h の 150 行目に定義があります。