TNB Library
公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
CEditAscii クラス

ASCII文字専用Editコントロール [詳解]

#include <TnbMfcEditAscii.h>

+ CEditAscii の継承関係図

公開メンバ関数

 CEditAscii (LPCTSTR lpszValidChars)
 コンストラクタ [詳解]
 
 CEditAscii (void)
 コンストラクタ [詳解]
 
DWORD GetExStyle (void) const
 [取得] ウィンドウ拡張スタイル取得. [詳解]
 
HWND GetSafeHwnd (void) const
 [取得] ウィンドウハンドル取得. [詳解]
 
DWORD GetStyle (void) const
 [取得] ウィンドウスタイル取得. [詳解]
 
CString GetText (void) const
 [取得] 入力文字取得 [詳解]
 
CString GetValidChars (void) const
 [取得] 入力可能文字取得. [詳解]
 
BOOL ModifyStyle (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 [設定] ウィンドウスタイル変更. [詳解]
 
BOOL ModifyStyleEx (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 [設定] ウィンドウ拡張スタイル変更. [詳解]
 
void SetCutPasteMode (bool r)
 [設定] カットペーストモード. [詳解]
 
void SetText (LPCTSTR lpszText, bool boIsNomoveSel=false)
 [設定] 文字列設定 [詳解]
 
void SetValidChars (LPCTSTR chars)
 [設定] 入力可能文字設定. [詳解]
 
BOOL SetWindowPos (const CWnd *pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
 [設定] ウィンドウサイズポジション設定. [詳解]
 
BOOL ShowWindow (int nCmdShow)
 [設定] ウィンドウ表示状態. [詳解]
 
virtual ~CEditAscii ()
 デストラクタ [詳解]
 

限定公開メンバ関数

virtual bool IsValidChar (UINT &_nChar, LONG &_lFlags, const CString &strNowText)
 [確認] 入力許可チェック [詳解]
 
virtual BOOL OnChildNotify (UINT message, WPARAM wParam, LPARAM lParam, LRESULT *_pResult)
 [通知] for notifications from parent [詳解]
 
virtual void OnEditEnd (void)
 [通知] フォーカスを失った時に通知 [詳解]
 
virtual void OnEditStart (void)
 [通知] フォーカスを得た時に通知 [詳解]
 
virtual void OnInputInvalidChar (void)
 [通知] 禁止文字入力発生時に通知. [詳解]
 
virtual void OnPasteChar (void)
 [通知] ペーストされた時 [詳解]
 
virtual void OnUpdateChar (void)
 [通知] 入力時に通知 [詳解]
 
virtual void PreSubclassWindow (void)
 [通知] subclassing/unsubclassing functions. [詳解]
 
virtual LRESULT WindowProc (UINT message, WPARAM wParam, LPARAM lParam)
 [通知] for processing Windows messages. [詳解]
 

詳解

ASCII文字専用Editコントロール

2バイトコードの入力を禁止できます。
継承して、 m_strValidChars を書き換えると有効な文字を指定できます。
IsValidChar() をオーバーライドすることで、より詳細な入力制限が出来ます。
また、入力された文字を差し替えることも出来ます。
OnUpdateChar() をオーバーライドすることで、変更イベントをハンドル出来ます。
使い方
リソースエディタでエディトボックスコントロールを張り、コントロール変数に割り当て後、 そのコントロール変数の型(CEdit)を本クラスに置き換えて使用します。
必要ファイル
TnbMfcEditAscii.h
日付
06/01/01 新規作成
06/11/17 CStr の使用から CString に切り替え。
07/12/19 Cut&Pasteを制限可能に。Beepモードも用意。
08/05/15 TAB入力を整理。
09/09/16 CE 対策。

TnbMfcEditAscii.h47 行目に定義があります。

構築子と解体子

◆ CEditAscii() [1/2]

CEditAscii ( void  )

コンストラクタ

TnbMfcEditAscii.h53 行目に定義があります。

◆ CEditAscii() [2/2]

CEditAscii ( LPCTSTR  lpszValidChars)

コンストラクタ

引数
lpszValidChars有効文字群指定。

TnbMfcEditAscii.h68 行目に定義があります。

◆ ~CEditAscii()

virtual ~CEditAscii ( )
virtual

デストラクタ

TnbMfcEditAscii.h74 行目に定義があります。

関数詳解

◆ 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)されている。

◆ GetText()

CString GetText ( void  ) const

[取得] 入力文字取得

戻り値
文字列

TnbMfcEditAscii.h82 行目に定義があります。

◆ GetValidChars()

CString GetValidChars ( void  ) const

[取得] 入力可能文字取得.

戻り値
入力可能文字

TnbMfcEditAscii.h122 行目に定義があります。

◆ IsValidChar()

virtual bool IsValidChar ( UINT &  _nChar,
LONG &  _lFlags,
const CString &  strNowText 
)
protectedvirtual

[確認] 入力許可チェック

引数
[in,out]_nCharWM_CHAR の WPARAM
[in,out]_lFlagsWM_CHAR の LPARAM
[in]strNowText入力済みの文字列
戻り値
true入力を認める。
false入力を認めない。

CEditHex, CEditFloatT< POW >, CEditValueT< TYP, TMIN, TMAX >, CEditValueT< BYTE, 0, 255 >, CEditValueT< char, -128, 127 >, CEditValueT< DWORD, 0, 0xFFFFFFFF >, CEditValueT< double, 0, 0 >, CEditValueT< int, -(0x7FFFFFFF), 0x7FFFFFFE >, CEditValueT< short, -32768, 32767 >, CEditValueT< ULONGLONG, 0, 99999999999999999 >, CEditValueT< WORD, 0, 65535 >で再実装されています。

TnbMfcEditAscii.h306 行目に定義があります。

◆ 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失敗.

◆ OnChildNotify()

virtual BOOL OnChildNotify ( UINT  message,
WPARAM  wParam,
LPARAM  lParam,
LRESULT *  _pResult 
)
protectedvirtual

[通知] for notifications from parent

覚え書き
CWndのメソッドをオーバーライドしています。 メッセージ受信したらコールされます。 WM_COMMANDの処理をフックしています。
引数
[in]messageメッセージ
[in]wParamWPARAM
[in]lParamLPARAM
[out]_pResultリザルト
戻り値
TRUE処理済。
FALSE未処理。

CEditValueT< TYP, TMIN, TMAX >, CEditValueT< BYTE, 0, 255 >, CEditValueT< char, -128, 127 >, CEditValueT< DWORD, 0, 0xFFFFFFFF >, CEditValueT< double, 0, 0 >, CEditValueT< int, -(0x7FFFFFFF), 0x7FFFFFFE >, CEditValueT< short, -32768, 32767 >, CEditValueT< ULONGLONG, 0, 99999999999999999 >, CEditValueT< WORD, 0, 65535 >で再実装されています。

TnbMfcEditAscii.h234 行目に定義があります。

◆ OnEditEnd()

virtual void OnEditEnd ( void  )
protectedvirtual

[通知] フォーカスを失った時に通知

覚え書き
継承して本メソッドに処理を記述します。 本関数内で GetText() で現在の文字を取得し SetText() を使い再設定することが可能。

CEditFloatT< POW >, CEditValueT< TYP, TMIN, TMAX >, CEditValueT< BYTE, 0, 255 >, CEditValueT< char, -128, 127 >, CEditValueT< DWORD, 0, 0xFFFFFFFF >, CEditValueT< double, 0, 0 >, CEditValueT< int, -(0x7FFFFFFF), 0x7FFFFFFE >, CEditValueT< short, -32768, 32767 >, CEditValueT< ULONGLONG, 0, 99999999999999999 >, CEditValueT< WORD, 0, 65535 >で再実装されています。

TnbMfcEditAscii.h366 行目に定義があります。

◆ OnEditStart()

virtual void OnEditStart ( void  )
protectedvirtual

[通知] フォーカスを得た時に通知

覚え書き
継承して本メソッドに処理を記述します。 本関数内で GetText() で現在の文字を取得し SetText() を使い再設定することが可能。

TnbMfcEditAscii.h357 行目に定義があります。

◆ OnInputInvalidChar()

virtual void OnInputInvalidChar ( void  )
protectedvirtual

[通知] 禁止文字入力発生時に通知.

TnbMfcEditAscii.h338 行目に定義があります。

◆ OnPasteChar()

virtual void OnPasteChar ( void  )
protectedvirtual

[通知] ペーストされた時

TnbMfcEditAscii.h267 行目に定義があります。

◆ OnUpdateChar()

virtual void OnUpdateChar ( void  )
protectedvirtual

[通知] 入力時に通知

覚え書き
継承して本メソッドに処理を記述します。 本関数内で GetText() で現在の文字を取得し SetText() を使い再設定することが可能。

CEditFloatT< POW >, CEditValueT< TYP, TMIN, TMAX >, CEditValueT< BYTE, 0, 255 >, CEditValueT< char, -128, 127 >, CEditValueT< DWORD, 0, 0xFFFFFFFF >, CEditValueT< double, 0, 0 >, CEditValueT< int, -(0x7FFFFFFF), 0x7FFFFFFE >, CEditValueT< short, -32768, 32767 >, CEditValueT< ULONGLONG, 0, 99999999999999999 >, CEditValueT< WORD, 0, 65535 >で再実装されています。

TnbMfcEditAscii.h348 行目に定義があります。

◆ PreSubclassWindow()

virtual void PreSubclassWindow ( void  )
protectedvirtual

[通知] subclassing/unsubclassing functions.

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

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

TnbMfcEditAscii.h146 行目に定義があります。

◆ SetCutPasteMode()

void SetCutPasteMode ( bool  r)

[設定] カットペーストモード.

引数
rtrue ならペースト、カットを許可します。 false なら許可しません。 コンストラクタ時、「許可」になっています。

TnbMfcEditAscii.h133 行目に定義があります。

◆ SetText()

void SetText ( LPCTSTR  lpszText,
bool  boIsNomoveSel = false 
)

[設定] 文字列設定

引数
lpszText設定する文字
boIsNomoveSeltrueならSELの位置を変えないようにする。 falseならSELは初期化される(普通にSetWindowTextした時と同じ動作)。

TnbMfcEditAscii.h95 行目に定義があります。

◆ SetValidChars()

void SetValidChars ( LPCTSTR  chars)

[設定] 入力可能文字設定.

引数
chars入力可能文字

TnbMfcEditAscii.h113 行目に定義があります。

◆ 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失敗.

◆ 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
戻り値
リザルト。

CEditValueT< TYP, TMIN, TMAX >, CEditValueT< BYTE, 0, 255 >, CEditValueT< char, -128, 127 >, CEditValueT< DWORD, 0, 0xFFFFFFFF >, CEditValueT< double, 0, 0 >, CEditValueT< int, -(0x7FFFFFFF), 0x7FFFFFFE >, CEditValueT< short, -32768, 32767 >, CEditValueT< ULONGLONG, 0, 99999999999999999 >, CEditValueT< WORD, 0, 65535 >で再実装されています。

TnbMfcEditAscii.h161 行目に定義があります。