TNB Library
公開メンバ関数 | 静的公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
CEditHexDataT< WIDTH > クラステンプレート

HEXデータ入力Editコントロールテンプレート [詳解]

#include <TnbMfcEditHexData.h>

+ CEditHexDataT< WIDTH > の継承関係図

公開メンバ関数

bool AddToolTip (void)
 [設定] ツールチップ追加. [詳解]
 
 CEditHexDataT (void)
 コンストラクタ. [詳解]
 
const CByteVectorGetData (void) const
 [取得] 入力データ取得. [詳解]
 
DWORD GetExStyle (void) const
 [取得] ウィンドウ拡張スタイル取得. [詳解]
 
int GetFirstVisibleLine (void) const
 [取得] 可視最上行取得. [詳解]
 
int GetLineCount (void) const
 [取得] 行数取得. [詳解]
 
HWND GetSafeHwnd (void) const
 [取得] ウィンドウハンドル取得. [詳解]
 
void GetSel (int &_startIndex, int &_endIndex) const
 [取得] 選択位置取得. [詳解]
 
DWORD GetStyle (void) const
 [取得] ウィンドウスタイル取得. [詳解]
 
int GetVisibleLineCount (void) const
 [取得] 可視行数取得. [詳解]
 
bool IsInsertMode (void) const
 [取得] インサートモード取得. [詳解]
 
bool IsMultiLineMode (void) const
 [取得] マルチライン確認. [詳解]
 
BOOL ModifyStyle (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 [設定] ウィンドウスタイル変更. [詳解]
 
BOOL ModifyStyleEx (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 [設定] ウィンドウ拡張スタイル変更. [詳解]
 
void ReplaceSel (const CByteVector &vb)
 [置換] データ置換. [詳解]
 
void ReplaceSel (LPCTSTR lpszText)
 [置換] データ置換. [詳解]
 
COLORREF SetBkColor (COLORREF color)
 [設定] 背景色設定. [詳解]
 
void SetData (const CByteVector &vb)
 [設定] データ設定. [詳解]
 
void SetFirstVisibleLine (int line)
 [設定] 可視最上行設定. [詳解]
 
void SetHighlightColor (COLORREF activeColor, COLORREF inactiveColor)
 [設定] ハイライト色設定. [詳解]
 
void SetInsertMode (bool isEnable)
 [設定] インサートモード設定. [詳解]
 
void SetLimitLength (int maxLength=-1, BYTE defaultData=0)
 [設定] 最大長設定. [詳解]
 
void SetMargins (const POINT &p)
 [設定] マージン設定. [詳解]
 
void SetSel (int index)
 [設定] 選択位置設定. [詳解]
 
void SetSel (int startIndex, int endIndex)
 [設定] 選択位置設定. [詳解]
 
COLORREF SetTextColor (COLORREF color)
 [設定] 文字色設定. [詳解]
 
BOOL SetWindowPos (const CWnd *pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
 [設定] ウィンドウサイズポジション設定. [詳解]
 
void ShowCaretAlways (void)
 [設定] 常にカレット表示. [詳解]
 
BOOL ShowWindow (int nCmdShow)
 [設定] ウィンドウ表示状態. [詳解]
 

静的公開メンバ関数

static bool MakeContextMenu (CMenu &_menu, bool canCopy, int topMenuId)
 [作成] コンテキストメニュー作成. [詳解]
 

限定公開メンバ関数

COLORREF GetBkColor (void) const
 [取得] 背景色取得. [詳解]
 
COLORREF GetTextColor (void) const
 [取得] 文字色取得. [詳解]
 
virtual void NotifyToParent (WORD notifyCode)
 [通知] 親ウィンドウへ通知. [詳解]
 
virtual void PreSubclassWindow (void)
 [通知] subclassing/unsubclassing functions. [詳解]
 
virtual BOOL PreTranslateMessage (MSG *pMsg)
 [通知] for translating Windows messages in main message pump [詳解]
 
virtual LRESULT WindowProc (UINT message, WPARAM wParam, LPARAM lParam)
 [通知] for processing Windows messages. [詳解]
 

詳解

template<int WIDTH = -1>
class TNB::MFC::CEditHexDataT< WIDTH >

HEXデータ入力Editコントロールテンプレート

1byte 毎にスペースが空くので、個々のデータが見やすく編集できます。
覚え書き
編集時、親に通知される WM_COMMAND には、以下のものがあります。
  • EN_HSCROLL
  • EN_VSCROLL
  • EN_SELCHANGE
  • EN_CHANGE
  • EN_SETFOCUS
  • EN_KILLFOCUS
WM_PASTE , WM_COPY , WM_CUT にも対応しています。
スーパークラスは EDITコントロール( CEdit )ではないので、ご注意下さい。
使い方
リソースエディタでスタティックコントロール(エディットコントロールでも可)を張り、コントロール変数に割り当て後、 そのコントロール変数の型(CStatic or CEdit)を本クラスに置き換えて使用します。
引数
WIDTH表示幅BYTE数。 1以上を指定するとマルチラインになります。-1 ならシングルライン。
必要ファイル
TnbMfcEditHexData.h
日付
10/04/01 新規作成
10/05/18 EN_CHANGE の発行タイミング修正。カレット表示修正。
10/06/22 テンキーの入力にバグ有り。修正。
11/10/19 Disable 状態のコントロールの表記を修正。
15/05/07 ペースト(ReplaceSel())処理で a〜f が正しく入力されないバグを修正。

TnbMfcEditHexData.h66 行目に定義があります。

構築子と解体子

◆ CEditHexDataT()

CEditHexDataT ( void  )

コンストラクタ.

TnbMfcEditHexData.h72 行目に定義があります。

関数詳解

◆ AddToolTip()

bool AddToolTip ( void  )

[設定] ツールチップ追加.

入力済みのデータ量をツールチップで表示するようにします。

戻り値
true成功。
false失敗。

TnbMfcEditHexData.h353 行目に定義があります。

◆ GetBkColor()

COLORREF GetBkColor ( void  ) const
protected

[取得] 背景色取得.

戻り値
コントロールの無効状態を考慮した背景色

TnbMfcEditHexData.h692 行目に定義があります。

◆ GetData()

const CByteVector & GetData ( void  ) const

[取得] 入力データ取得.

戻り値
入力データ.

TnbMfcEditHexData.h149 行目に定義があります。

◆ GetExStyle()

DWORD GetExStyle ( void  ) const
inherited

[取得] ウィンドウ拡張スタイル取得.

本インスタンスが管理しているウィンドウの拡張スタイルを返します。

戻り値
ウィンドウスタイル。 WS_EX_LEFT や WS_EX_TOPMOST などのシンボルが論理和(or)されている。

◆ GetFirstVisibleLine()

int GetFirstVisibleLine ( void  ) const

[取得] 可視最上行取得.

表示している最上の行数を返します。

戻り値
行数。一番上が0。

TnbMfcEditHexData.h198 行目に定義があります。

◆ GetLineCount()

int GetLineCount ( void  ) const

[取得] 行数取得.

全データの行数を返します。

戻り値
行数

TnbMfcEditHexData.h184 行目に定義があります。

◆ GetSafeHwnd()

HWND GetSafeHwnd ( void  ) const
inherited

[取得] ウィンドウハンドル取得.

本インスタンスが管理しているウィンドウのハンドルを返します。

戻り値
ウィンドウハンドル

◆ GetSel()

void GetSel ( int &  _startIndex,
int &  _endIndex 
) const

[取得] 選択位置取得.

カレットの位置や、選択範囲を取得します。

覚え書き
_startIndex と _endIndex が同じ場合、未選択と判断できます。
引数
[out]_startIndex選択状態の場合、選択開始位置が返ります。通常の場合、カレットの位置が入ります。
[out]_endIndex選択状態の場合、選択終了位置が返ります。通常の場合、カレットの位置が入ります。

TnbMfcEditHexData.h282 行目に定義があります。

◆ GetStyle()

DWORD GetStyle ( void  ) const
inherited

[取得] ウィンドウスタイル取得.

本インスタンスが管理しているウィンドウのスタイルを返します。

戻り値
ウィンドウスタイル。 WS_CHILD や WS_MINIMIZE などのシンボルが論理和(or)されている。

◆ GetTextColor()

COLORREF GetTextColor ( void  ) const
protected

[取得] 文字色取得.

戻り値
コントロールの無効状態を考慮した文字色

TnbMfcEditHexData.h683 行目に定義があります。

◆ GetVisibleLineCount()

int GetVisibleLineCount ( void  ) const

[取得] 可視行数取得.

クライアント領域に表示できる行数を返します。

戻り値
行数

TnbMfcEditHexData.h168 行目に定義があります。

◆ IsInsertMode()

bool IsInsertMode ( void  ) const

[取得] インサートモード取得.

本コントロールは、インサートモードと上書きモードがあります。

戻り値
trueインサートモード
false上書きモード

TnbMfcEditHexData.h115 行目に定義があります。

◆ IsMultiLineMode()

bool IsMultiLineMode ( void  ) const

[取得] マルチライン確認.

戻り値
trueマルチラインモード
falseシングルラインモード

TnbMfcEditHexData.h140 行目に定義があります。

◆ MakeContextMenu()

static bool MakeContextMenu ( CMenu &  _menu,
bool  canCopy,
int  topMenuId 
)
static

[作成] コンテキストメニュー作成.

引数
[out]_menu作成したメニューが格納されます。
[in]canCopyコピー、カットが可能なら true を指定します。
[in]topMenuIdメニューIDを指定します。指定の IDが切り取り、+1がコピー、+2がペーストに割り当てられます。
戻り値
true成功
false失敗

TnbMfcEditHexData.h419 行目に定義があります。

◆ ModifyStyle()

BOOL ModifyStyle ( DWORD  dwRemove,
DWORD  dwAdd,
UINT  nFlags = 0 
)
inherited

[設定] ウィンドウスタイル変更.

引数
dwRemove除去するスタイルを指定する。
dwAdd追加するスタイルを指定する。
nFlagsSetWindowPos() に渡すフラグ。0なら SetWindowPos() を呼びません。
戻り値
TRUE成功.
FALSE失敗.

◆ ModifyStyleEx()

BOOL ModifyStyleEx ( DWORD  dwRemove,
DWORD  dwAdd,
UINT  nFlags = 0 
)
inherited

[設定] ウィンドウ拡張スタイル変更.

引数
dwRemove除去する拡張スタイルを指定する。
dwAdd追加する拡張スタイルを指定する。
nFlagsSetWindowPos() に渡すフラグ。0なら SetWindowPos() を呼びません。
戻り値
TRUE成功.
FALSE失敗.

◆ NotifyToParent()

virtual void NotifyToParent ( WORD  notifyCode)
protectedvirtual

[通知] 親ウィンドウへ通知.

EN_UPDATE など、親ウィンドウに WM_COMMAND を通知します。

引数
notifyCodeコード

TnbMfcEditHexData.h671 行目に定義があります。

◆ PreSubclassWindow()

virtual void PreSubclassWindow ( void  )
protectedvirtual

[通知] subclassing/unsubclassing functions.

サブクラス化する時コールされます。

覚え書き
CWndのメソッドをオーバーライドしています。
IMEを無効化しています。

TnbMfcEditHexData.h443 行目に定義があります。

◆ PreTranslateMessage()

virtual BOOL PreTranslateMessage ( MSG *  pMsg)
protectedvirtual

[通知] for translating Windows messages in main message pump

引数
pMsgメッセージ
戻り値
TRUEディスパッチできない場合
FALSEディスパッチする必要がある場合

TnbMfcEditHexData.h461 行目に定義があります。

◆ ReplaceSel() [1/2]

void ReplaceSel ( const CByteVector vb)

[置換] データ置換.

選択されている部分を指定のデータに置換します。 選択されていない場合、インサートモードの場合カレットの位置から挿入します。上書きモードの場合、上書きします。

引数
vbデータ.

TnbMfcEditHexData.h342 行目に定義があります。

◆ ReplaceSel() [2/2]

void ReplaceSel ( LPCTSTR  lpszText)

[置換] データ置換.

選択されている部分を指定のデータに置換します。 選択されていない場合、インサートモードの場合カレットの位置から挿入します。上書きモードの場合、上書きします。

覚え書き
文字列は、 0〜9, A〜F, a〜f 以外は無視します。
引数
lpszText文字列

TnbMfcEditHexData.h305 行目に定義があります。

◆ SetBkColor()

COLORREF SetBkColor ( COLORREF  color)

[設定] 背景色設定.

引数
color
戻り値
設定前の背景色

TnbMfcEditHexData.h392 行目に定義があります。

◆ SetData()

void SetData ( const CByteVector vb)

[設定] データ設定.

引数
vbデータ.

TnbMfcEditHexData.h158 行目に定義があります。

◆ SetFirstVisibleLine()

void SetFirstVisibleLine ( int  line)

[設定] 可視最上行設定.

一番上に表示する行を指定します。

引数
line行数。

TnbMfcEditHexData.h212 行目に定義があります。

◆ SetHighlightColor()

void SetHighlightColor ( COLORREF  activeColor,
COLORREF  inactiveColor 
)

[設定] ハイライト色設定.

引数
activeColorアクティブ時の背景色
inactiveColor非アクティブ時の背景色

TnbMfcEditHexData.h405 行目に定義があります。

◆ SetInsertMode()

void SetInsertMode ( bool  isEnable)

[設定] インサートモード設定.

本コントロールは、インサートモードと上書きモードがあります。

覚え書き
デフォルトでは上書きモードです。 ユーザは[insert]キーでこれらを切り替えることが出来ます。
引数
isEnabletrue ならインサートモード。false なら上書きモードです。

TnbMfcEditHexData.h103 行目に定義があります。

◆ SetLimitLength()

void SetLimitLength ( int  maxLength = -1,
BYTE  defaultData = 0 
)

[設定] 最大長設定.

入力できるBYTE数を指定できます。指定しない場合、無限に入力できます。

覚え書き
マルチラインの場合、最大長を指定すると、サイズ固定になります。
入力情報はEmptyになります。
引数
maxLength最大長。省略すると、無限になります。
defaultDataマルチラインの場合、デフォルトの値を指定できます。

TnbMfcEditHexData.h128 行目に定義があります。

◆ SetMargins()

void SetMargins ( const POINT &  p)

[設定] マージン設定.

左上のマージン(文字の表示されるまでの空間)を指定できます。

覚え書き
未設定の場合、 横 3、縦 2 dot です。
引数
pマージン

TnbMfcEditHexData.h91 行目に定義があります。

◆ SetSel() [1/2]

void SetSel ( int  index)

[設定] 選択位置設定.

指定のインデックスにカレット位置を移動します。

引数
indexインデックス

TnbMfcEditHexData.h241 行目に定義があります。

◆ SetSel() [2/2]

void SetSel ( int  startIndex,
int  endIndex 
)

[設定] 選択位置設定.

指定のインデックス間を選択状態にします。

引数
startIndex選択開始インデックス
endIndex選択終了インデックス

TnbMfcEditHexData.h254 行目に定義があります。

◆ SetTextColor()

COLORREF SetTextColor ( COLORREF  color)

[設定] 文字色設定.

引数
color
戻り値
設定前の文字色

TnbMfcEditHexData.h379 行目に定義があります。

◆ SetWindowPos()

BOOL SetWindowPos ( const CWnd pWndInsertAfter,
int  x,
int  y,
int  cx,
int  cy,
UINT  nFlags 
)
inherited

[設定] ウィンドウサイズポジション設定.

子ウィンドウ、ポップアップ ウィンドウ、およびトップレベル ウィンドウのサイズ、位置、および Z オーダーを変更します。

引数
pWndInsertAfterZ オーダーでこの 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 ウィンドウを表示します。
戻り値
TRUE成功.
FALSE失敗.

◆ ShowCaretAlways()

void ShowCaretAlways ( void  )

[設定] 常にカレット表示.

覚え書き
フォーカスが無い時も、カレットの位置がわかるようにします。

TnbMfcEditHexData.h369 行目に定義があります。

◆ ShowWindow()

BOOL ShowWindow ( int  nCmdShow)
inherited

[設定] ウィンドウ表示状態.

引数
nCmdShowCWnd を表示する方法を指定します。次の値のいずれかになります。
  • SW_HIDE このウィンドウを非表示にし、他のウィンドウをアクティブにします。
  • SW_MINIMIZE ウィンドウを最小化し、システムのリストのトップレベル ウィンドウをアクティブにします。
  • SW_RESTORE ウィンドウをアクティブにし、表示します。ウィンドウが最小化または最大化されている場合は、Windows によって元のサイズと位置に戻されます。
  • SW_SHOW ウィンドウをアクティブにし、現在のサイズと位置で表示します。
  • SW_SHOWMAXIMIZED ウィンドウをアクティブにし、最大表示します。
  • SW_SHOWMINIMIZED ウィンドウをアクティブにし、最小化して表示します。
  • SW_SHOWMINNOACTIVE ウィンドウを最小化して表示します。現在アクティブなウィンドウはアクティブなまま表示します。
  • SW_SHOWNA 現在の状態でウィンドウを表示します。現在アクティブなウィンドウはアクティブなまま表示します。
  • SW_SHOWNOACTIVATE ウィンドウを直前のサイズと位置で表示します。現在アクティブなウィンドウはアクティブなまま表示します。
  • SW_SHOWNORMAL ウィンドウをアクティブにし、表示します。ウィンドウが最小化または最大化されている場合は、Windows によって元のサイズと位置に戻されます。
戻り値
TRUE成功.
FALSE失敗.

◆ WindowProc()

virtual LRESULT WindowProc ( UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
protectedvirtual

[通知] for processing Windows messages.

メッセージ受信したらコールされます。

覚え書き
CWndのメソッドをオーバーライドしています。
引数
messageメッセージ
wParamWPARAM
lParamLPARAM
戻り値
リザルト。

TnbMfcEditHexData.h479 行目に定義があります。