DIPSW 風ボタンコントロールクラス.
[詳解]
#include <TnbMfcDipswButton.h>
|
enum | EMagicColorCode {
MCC0 = RGB(128, 0, 0)
, MCC1 = RGB(255, 0, 0)
, MCC2 = RGB(0, 0, 128)
, MCC3 = RGB(0, 0, 255)
,
MCC4 = RGB(0, 128, 0)
, MCC5 = RGB(0, 255, 0)
, MCC6 = RGB(0, 128, 128)
, MCC7 = RGB(0, 255, 255)
} |
| マジックカラーコード. [詳解]
|
|
|
| CDipswButton (void) |
| コンストラクタ [詳解]
|
|
DWORD | GetExStyle (void) const |
| [取得] ウィンドウ拡張スタイル取得. [詳解]
|
|
HWND | GetSafeHwnd (void) const |
| [取得] ウィンドウハンドル取得. [詳解]
|
|
DWORD | GetStyle (void) const |
| [取得] ウィンドウスタイル取得. [詳解]
|
|
BYTE | GetValue (void) const |
| [取得] 値取得. [詳解]
|
|
BOOL | ModifyStyle (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0) |
| [設定] ウィンドウスタイル変更. [詳解]
|
|
BOOL | ModifyStyleEx (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0) |
| [設定] ウィンドウ拡張スタイル変更. [詳解]
|
|
bool | SetClientRgn (HRGN rgn) |
| [設定] ウィンドウリージョン設定. [詳解]
|
|
bool | SetClientRgnEx (COLORREF color=CLR_AUTOSELECT) |
| [設定] クライアントリージョン設定. [詳解]
|
|
void | SetDrawingBitmap (CBitmapHandle bmp, bool isAdjust=true, bool isRedraw=false) |
| [設定] 描画情報設定. [詳解]
|
|
void | SetDrawingObject (const IDrawable &draw, bool isClientSizeAdjust=true, bool isRedraw=false) |
| [設定] 描画情報設定. [詳解]
|
|
void | SetImage (CBitmapHandle b, COLORREF onColor=RGB(255, 255, 255), COLORREF offColor=RGB(1, 1, 1)) |
| [設定] イメージ指定. [詳解]
|
|
void | SetValue (BYTE value) |
| [設定] 値設定. [詳解]
|
|
BOOL | SetWindowPos (const CWnd *pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags) |
| [設定] ウィンドウサイズポジション設定. [詳解]
|
|
BOOL | ShowWindow (int nCmdShow) |
| [設定] ウィンドウ表示状態. [詳解]
|
|
DIPSW 風ボタンコントロールクラス.
スライドスイッチを4個持ち、0x00〜0x0F までの値を表すことが出来ます。
- 使い方
- マジックカラーコードでボタンを現したビットマップを一枚用意します。 リソースエディタでスタティックコントロールを張り、コントロール変数に割り当て後、 そのコントロール変数の型(CStatic)を本クラスに置き換えて使用します。 最初に SetImage() してください。
- 覚え書き
- クリックにより DIPSW の状態が変化した時、 DIPSW_CHANGED_T を、親に通知しています。
- 使用例
BEGIN_MESSAGE_MAP(CXxxDlg, CDialog)
ON_CONTROL(DIPSW_CHANGED_T, IDC_STATIC_DIPSW, OnChangedDipsw)
:
- todo:
- フォーカスを受けません。よってキーボードでの操作は出来ません。
- 必要ファイル
- TnbMfcDipswButton.h
- 日付
- 16/07/26 新規作成
TnbMfcDipswButton.h の 56 行目に定義があります。
◆ EMagicColorCode
マジックカラーコード.
列挙値 |
---|
MCC0 | 暗い赤
|
MCC1 | 赤
|
MCC2 | 暗い青
|
MCC3 | 青
|
MCC4 | 暗い緑
|
MCC5 | 緑
|
MCC6 | 暗い水色
|
MCC7 | 水色
|
TnbMfcDipswButton.h の 64 行目に定義があります。
◆ CDipswButton()
◆ DeleteClientRgnHandle()
void DeleteClientRgnHandle |
( |
void |
| ) |
|
|
protectedinherited |
◆ GetExStyle()
DWORD GetExStyle |
( |
void |
| ) |
const |
|
inherited |
[取得] ウィンドウ拡張スタイル取得.
本インスタンスが管理しているウィンドウの拡張スタイルを返します。
- 戻り値
- ウィンドウスタイル。 WS_EX_LEFT や WS_EX_TOPMOST などのシンボルが論理和(or)されている。
◆ GetSafeHwnd()
HWND GetSafeHwnd |
( |
void |
| ) |
const |
|
inherited |
[取得] ウィンドウハンドル取得.
本インスタンスが管理しているウィンドウのハンドルを返します。
- 戻り値
- ウィンドウハンドル
◆ GetStyle()
DWORD GetStyle |
( |
void |
| ) |
const |
|
inherited |
[取得] ウィンドウスタイル取得.
本インスタンスが管理しているウィンドウのスタイルを返します。
- 戻り値
- ウィンドウスタイル。 WS_CHILD や WS_MINIMIZE などのシンボルが論理和(or)されている。
◆ GetValue()
BYTE GetValue |
( |
void |
| ) |
const |
◆ ModifyStyle()
BOOL ModifyStyle |
( |
DWORD |
dwRemove, |
|
|
DWORD |
dwAdd, |
|
|
UINT |
nFlags = 0 |
|
) |
| |
|
inherited |
◆ ModifyStyleEx()
BOOL ModifyStyleEx |
( |
DWORD |
dwRemove, |
|
|
DWORD |
dwAdd, |
|
|
UINT |
nFlags = 0 |
|
) |
| |
|
inherited |
[設定] ウィンドウ拡張スタイル変更.
- 引数
-
- 戻り値
-
◆ PreSubclassWindow()
virtual void PreSubclassWindow |
( |
void |
| ) |
|
|
protectedvirtual |
◆ SetClientRgn()
bool SetClientRgn |
( |
HRGN |
rgn | ) |
|
|
inherited |
[設定] ウィンドウリージョン設定.
- 引数
-
- 戻り値
-
true | 成功。指定した rgn は本オブジェクトが管理するので、破棄しないでください(不必要になったら破棄します)。 |
false | 失敗。指定した rgn は有効なので、 DeleteObject する必要があります。 |
TnbMfcRgnControl.h の 117 行目に定義があります。
◆ SetClientRgnEx()
bool SetClientRgnEx |
( |
COLORREF |
color = CLR_AUTOSELECT | ) |
|
|
inherited |
◆ SetDrawingBitmap()
void SetDrawingBitmap |
( |
CBitmapHandle |
bmp, |
|
|
bool |
isAdjust = true , |
|
|
bool |
isRedraw = false |
|
) |
| |
|
inherited |
[設定] 描画情報設定.
- 引数
-
bmp | ビットマップ |
isAdjust | true か省略なら 指定の bmp の大きさにクライアントを調整します。 false ならクライアントの大きさは変わりません。 |
isRedraw | true なら再描画します。 false か省略ならなにもしません。 |
TnbMfcDrawingStatic.h の 114 行目に定義があります。
◆ SetDrawingObject()
void SetDrawingObject |
( |
const IDrawable & |
draw, |
|
|
bool |
isClientSizeAdjust = true , |
|
|
bool |
isRedraw = false |
|
) |
| |
|
inherited |
[設定] 描画情報設定.
- 引数
-
draw | 描画情報. 本オブジェクトにはクローンが記憶されるので、 draw は破棄してもかまいません。 |
isClientSizeAdjust | true か省略なら 指定の draw の大きさにクライアントを調整します。 false ならクライアントの大きさを draw に設定します(クライアントの大きさは変わりません)。 |
isRedraw | true なら再描画します。 false か省略ならなにもしません。 |
TnbMfcDrawingStatic.h の 87 行目に定義があります。
◆ SetImage()
void SetImage |
( |
CBitmapHandle |
b, |
|
|
COLORREF |
onColor = RGB(255, 255, 255) , |
|
|
COLORREF |
offColor = RGB(1, 1, 1) |
|
) |
| |
[設定] イメージ指定.
- 引数
-
b | ベース画像。swの部分がマジックカラーコードで書かれているもの。 |
onColor | ONの際の色。マジックカラーコード以外の色にすること。 |
offColor | OFFの際の色。マジックカラーコード以外の色にすること。 |
TnbMfcDipswButton.h の 87 行目に定義があります。
◆ SetValue()
void SetValue |
( |
BYTE |
value | ) |
|
◆ SetWindowPos()
BOOL SetWindowPos |
( |
const CWnd * |
pWndInsertAfter, |
|
|
int |
x, |
|
|
int |
y, |
|
|
int |
cx, |
|
|
int |
cy, |
|
|
UINT |
nFlags |
|
) |
| |
|
inherited |
[設定] ウィンドウサイズポジション設定.
子ウィンドウ、ポップアップ ウィンドウ、およびトップレベル ウィンドウのサイズ、位置、および Z オーダーを変更します。
- 引数
-
pWndInsertAfter | Z オーダーでこの CWnd オブジェクトより前に配置される CWnd オブジェクトを識別します。このパラメータへは、 CWnd へのポインタか 次の値のいずれか 1 つを指定できます。
- wndBottom ウィンドウを Z オーダーの一番下に置きます。この CWnd が最上位のウィンドウの場合、ウィンドウの最上位ステータスは失われます。 システムでは、このウィンドウをほかのすべてのウィンドウよりも下に置きます。
- wndTop ウィンドウを Z オーダーの先頭に置きます。
- wndTopMost ウィンドウを最上位でないすべてのウィンドウの上に置きます。 ウィンドウは、非アクティブになったときも、最上位の位置を保持します。
- wndNoTopMost ウィンドウを最上位でないすべてのウィンドウの先頭に再配置します (つまり、一番手前のすべてのウィンドウの後ろに置きます)。 ウィンドウが既に非最上位ウィンドウとなっているときは、このフラグは無効です。
|
x | ウィンドウの新しい左辺の位置を指定します。 |
y | ウィンドウの新しい上辺の位置を指定します。 |
cx | ウィンドウの新しい幅を指定します。 |
cy | ウィンドウの新しい高さを指定します。 |
nFlags | サイズ変更オプションおよび位置指定オプションを指定します。このパラメータには、次の値を組み合わせて指定できます。
- SWP_DRAWFRAME ウィンドウの周りにフレーム (ウィンドウ作成時に定義されます) を描画します。
- SWP_FRAMECHANGED ウィンドウのサイズが変化されていない場合でも、ウィンドウに WM_NCCALCSIZE メッセージを送信します。このフラグが指定されていない場合、WM_NCCALCSIZE メッセージはウィンドウのサイズが実際に変化しているときにだけ送られます。
- SWP_HIDEWINDOW ウィンドウを非表示にします。
- SWP_NOACTIVATE ウィンドウをアクティブにしません。このフラグが設定されていないと、ウィンドウはアクティブになり、最上位または非最上位のウィンドウ グループのいずれかの先頭に移動されます (パラメータ pWndInsertAfter の設定に依存します)。
- SWP_NOCOPYBITS クライアント領域の内容全体を破棄します。このフラグが指定されていない場合、クライアント領域の有効な内容はすべて保存されます。保存された内容は、ウィンドウのサイズや位置が再び変更されたときにクライアント領域に復元されます。
- SWP_NOMOVE 現在位置を保持します (x パラメータと y パラメータを無視します)。
- SWP_NOOWNERZORDER オーナー ウィンドウの Z オーダーの位置を変更しません。
- SWP_NOREDRAW 変更があっても再描画しません。このフラグが設定されていると、どのような種類の再描画も行われません。このことは、クライアント領域、非クライアント領域 (タイトルやスクロール バーを含みます)、ウィンドウが移動したことにより覆われない親ウィンドウのあらゆる部分に適用されます。このフラグが設定されているときは、アプリケーションは再描画が必要なウィンドウや親ウィンドウのあらゆる部分を明示的に無効領域または再描画する必要があります。
- SWP_NOREPOSITION SWP_NOOWNERZORDER と同じです。
- SWP_NOSENDCHANGING ウィンドウが WM_WINDOWPOSCHANGING メッセージを受信しないようにします。
- SWP_NOSIZE 現在のサイズを保持します (cx パラメータと cy パラメータを無視します)。
- SWP_NOZORDER 現在の順序を保持します (pWndInsertAfter を無視します)。
- SWP_SHOWWINDOW ウィンドウを表示します。
|
- 戻り値
-
◆ ShowWindow()
BOOL ShowWindow |
( |
int |
nCmdShow | ) |
|
|
inherited |
[設定] ウィンドウ表示状態.
- 引数
-
nCmdShow | CWnd を表示する方法を指定します。次の値のいずれかになります。
- SW_HIDE このウィンドウを非表示にし、他のウィンドウをアクティブにします。
- SW_MINIMIZE ウィンドウを最小化し、システムのリストのトップレベル ウィンドウをアクティブにします。
- SW_RESTORE ウィンドウをアクティブにし、表示します。ウィンドウが最小化または最大化されている場合は、Windows によって元のサイズと位置に戻されます。
- SW_SHOW ウィンドウをアクティブにし、現在のサイズと位置で表示します。
- SW_SHOWMAXIMIZED ウィンドウをアクティブにし、最大表示します。
- SW_SHOWMINIMIZED ウィンドウをアクティブにし、最小化して表示します。
- SW_SHOWMINNOACTIVE ウィンドウを最小化して表示します。現在アクティブなウィンドウはアクティブなまま表示します。
- SW_SHOWNA 現在の状態でウィンドウを表示します。現在アクティブなウィンドウはアクティブなまま表示します。
- SW_SHOWNOACTIVATE ウィンドウを直前のサイズと位置で表示します。現在アクティブなウィンドウはアクティブなまま表示します。
- SW_SHOWNORMAL ウィンドウをアクティブにし、表示します。ウィンドウが最小化または最大化されている場合は、Windows によって元のサイズと位置に戻されます。
|
- 戻り値
-
◆ WindowProc()
virtual LRESULT WindowProc |
( |
UINT |
message, |
|
|
WPARAM |
wParam, |
|
|
LPARAM |
lParam |
|
) |
| |
|
protectedvirtual |
[通知] for processing Windows messages.
メッセージ受信したらコールされます。
- 覚え書き
- CWndのメソッドをオーバーライドしています。
- 引数
-
message | メッセージ |
wParam | WPARAM |
lParam | LPARAM |
- 戻り値
- リザルト。
CDrawingStaticを再実装しています。
TnbMfcDipswButton.h の 140 行目に定義があります。
◆ m_clientRgn