数値エディットコントロールクラス
整数または実数を入力する為のコントロールです。
このコントロールは、タイトルバーが無いダイアログをモードレスダイアログとして コンテナに貼り付けて、擬似的にコントロールのように見せかけています。 コンテナとなるダイアログのデザイン時に配置する事はできません。 通常は、ダイアログのデザイン時にダミーのエディットボックスを配置し、 実行時にエディットボックスの位置を取得して、このコントロールを貼り付けます。
入力方法は下記の3通りです。
- エディットボックスへの直接入力
- スピンボタンによる増減
- プログレスバーによる粗選択
- 必要条件:
- ヘッダー: EVCbasic.h
- 初期値:
- メンバ変数は下記のように初期化されます。
メンバ変数 | 初期値 | 説明 |
m_type | FVCL::EditCtrlType::I32 | 数値の種別 |
m_value | 0 | 現在値 |
m_lower | 0 | レンジ下限 |
m_upper | 100 | レンジ上限 |
m_split | 100 | 分割数 |
m_decimal | 2 | 小数点以下桁数 |
m_format | %d | 数値変換書式 |
- サンプルコード:
- 下記の m_edtValue は、クラスのメンバに宣言された CEvEditCtrl のオブジェクトを意味します。 IDC_EDIT_VALUE は、ダイアログのデザイン時に配置したエディットボックスのリソースIDです。
CRect rect;
GetDlgItem(IDC_EDIT_VALUE)->GetWindowRect( (LPRECT)&rect );
ScreenToClient( (LPRECT)&rect );
m_edtValue.SetRange( -180.0, 180.0 );
m_edtValue.SetValue( 0.0 );
m_edtValue.SetSplit( 360 );
m_edtValue.SetDecimal( 1 );
m_edtValue.Create( IDC_EDIT_VALUE, rect, this );
m_edtValue.Update();
- CreateEditCtrl テンプレート関数を使用すると、前述の作業を簡素化できます。
CreateEditCtrl<DOUBLE>( &m_edtValue, IDC_EDIT_VALUE, 0.0, -180.0, 180.0, this );
m_edtValue.SetSplit( 360 );
m_edtValue.SetDecimal( 1 );
m_edtValue.Update();
数値エディットコントロールの値が変化する度に現在値を取得するには、 インスタンスを CEvMessageMap に登録してイベントハンドラで EN_CHANGE イベントを監視してください。
■ メッセージマップへの登録:
- ■ イベントの監視:
void CMyDlg::OnCommandPost(
CEvDialog* dlg, WPARAM wParam , LPARAM lParam )
{
switch( HIWORD(wParam) )
{
case EN_CHANGE:
{
case IDC_EDIT_VALUE :
break;
}
}
}
- 参照
- CreateEditCtrl
CEvMessageMap
|
| CEvEditCtrl (CWnd *parent=NULL, UINT dlgid=IDD) |
| コンストラクタ [詳解]
|
|
virtual BOOL | Create (UINT ctrlID, const RECT &rect, CWnd *parent=NULL, UINT dlgid=IDD) |
| モードレスダイアログの生成 [詳解]
|
|
virtual BOOL | EnableWindow (BOOL bEnable=TRUE) |
| マウス/キーボード入力の許可/禁止の設定 [詳解]
|
|
virtual BOOL | PreTranslateMessage (MSG *pMsg) |
| ウィンドウメッセージの変換 [詳解]
|
|
virtual bool | Update (bool bReDraw=true) |
| プロパティ更新通知 [詳解]
|
|
bool | SetRange (INT lower, INT upper) |
| 上限値/下限値の設定 (符号つき整数) [詳解]
|
|
bool | SetRange (UINT lower, UINT upper) |
| 上限値/下限値の設定 (符号なし整数) [詳解]
|
|
bool | SetRange (DOUBLE lower, DOUBLE upper) |
| 上限値/下限値の設定 (実数) [詳解]
|
|
bool | GetRange (INT *lower, INT *upper) |
| 上限値/下限値の取得 (符号つき整数) [詳解]
|
|
bool | GetRange (UINT *lower, UINT *upper) |
| 上限値/下限値の取得 (符号なし整数) [詳解]
|
|
bool | GetRange (DOUBLE *lower, DOUBLE *upper) |
| 上限値/下限値の取得 (実数) [詳解]
|
|
bool | SetSplit (UINT split) |
| 分割数の設定 [詳解]
|
|
bool | GetSplit (UINT *split) const |
| 分割数の取得 [詳解]
|
|
bool | SetDecimal (UINT decimal) |
| 小数点以下桁数の設定 [詳解]
|
|
bool | GetDecimal (UINT *decimal) const |
| 小数点以下桁数の取得 [詳解]
|
|
bool | SetValue (INT value) |
| 現在値の設定 [詳解]
|
|
bool | SetValue (UINT value) |
| 現在値の設定 [詳解]
|
|
bool | SetValue (DOUBLE value) |
| 現在値の設定 [詳解]
|
|
bool | GetValue (INT *value) const |
| 現在値の取得 [詳解]
|
|
bool | GetValue (UINT *value) const |
| 現在値の取得 [詳解]
|
|
bool | GetValue (DOUBLE *value) const |
| 現在値の取得 [詳解]
|
|
| CEvDlgCtrl (CWnd *parent, UINT dlgid) |
| コンストラクタ [詳解]
|
|
| CEvDialog (CWnd *parent, UINT dlgid) |
| コンストラクタ [詳解]
|
|
virtual BOOL | Create (CWnd *parent, UINT dlgid) |
| モードレスダイアログの構築 [詳解]
|
|
virtual void | ReDraw (bool Invalidate=true) |
| ダイアログの再描画 [詳解]
|
|
virtual void | Reset (MESSAGEMAP_T *map) |
| メンバのリセット [詳解]
|
|
virtual void | Reset (CEvDialog *dlg) |
| メンバのリセット [詳解]
|
|
virtual void | Reset (const FVCL::Data::CFvImage *image) |
| メンバのリセット [詳解]
|
|
bool | SetDlgCtrlFixedID (UINT fixedID) |
| ダイアログ固定IDの設定 [詳解]
|
|
UINT | GetDlgCtrlFixedID () const |
| ダイアログ固定IDの取得 [詳解]
|
|
bool | SetDlgCtrlType (UINT type) |
| ダイアログ種別の設定 [詳解]
|
|
UINT | GetDlgCtrlType () const |
| ダイアログ種別の取得 [詳解]
|
|
bool | SetDlgCtrlFilter (UINT filter) |
| ダイアログ用途識別フィルタの設定 [詳解]
|
|
UINT | GetDlgCtrlFilter () const |
| ダイアログ用途識別フィルタの取得 [詳解]
|
|
bool | SetDlgCtrlRect (INT ctrlID, const CRect &rect, INT iFlags) |
| コントロールの位置/サイズ変更 [詳解]
|
|
bool | GetDlgCtrlRect (INT ctrlID, CRect *rect) |
| コントロールの位置/サイズ取得 [詳解]
|
|
bool | SetAutoDelete (bool blAutoDelete) |
| thisポインタの自動削除フラグの設定 [詳解]
|
|
bool | GetAutoDelete () const |
| thisポインタの自動削除フラグの取得 [詳解]
|
|
bool | AddMessageMap (MESSAGEMAP_T *object) |
| メッセージマッピングオブジェクトの追加 [詳解]
|
|
bool | DelMessageMap (const MESSAGEMAP_T *object) |
| メッセージマッピングオブジェクトの削除 [詳解]
|
|
UINT | GetMessageMapCount () const |
| メッセージマッピングオブジェクトの個数取得 [詳解]
|
|
MESSAGEMAP_T * | GetMessageMap (UINT index) const |
| メッセージマッピングオブジェクトの取得 [詳解]
|
|
virtual bool | ThreadRun () |
| スレッドの起動 [詳解]
|
|
virtual bool | ThreadStop (INT timeout=3000) |
| スレッドの休止 [詳解]
|
|
virtual bool | ThreadKill (INT timeout=3000) |
| スレッドの破棄 [詳解]
|
|
virtual INT | GetThreadStatus () |
| スレッドの状態取得 [詳解]
|
|
|
virtual void | DoDataExchange (CDataExchange *pDX) |
| ダイアログ データの交換と有効性チェック [詳解]
|
|
virtual BOOL | OnInitDialog () |
| ダイアログが生成された後の最初の初期化処理 [詳解]
|
|
afx_msg void | OnChangeEdit () |
| エディットボックスに値が入力された時の処理 [詳解]
|
|
afx_msg void | OnVScroll (UINT nSBCode, UINT nPos, CScrollBar *pScrollBar) |
| 垂直スクロールイベントが発生した時の処理 [詳解]
|
|
afx_msg void | OnLButtonDown (UINT nFlags, CPoint point) |
| マウス(左ボタン)がクリックされた時の処理 [詳解]
|
|
afx_msg void | OnSize (UINT nType, INT cx, INT cy) |
| サイズが変更された時の処理 [詳解]
|
|
INT64 | Regularize (INT64 value) const |
| 正規化 [詳解]
|
|
DOUBLE | Regularize (DOUBLE value) const |
| 正規化 [詳解]
|
|
INT64 | ValueToPercent (DOUBLE value) const |
| 実数からパーセント値への変換 [詳解]
|
|
DOUBLE | PercentToValueD (INT64 percent) const |
| パーセント値から実数への変換 [詳解]
|
|
bool | SetRange (CSpinButtonCtrl &ctrl, INT64 lower, INT64 upper) |
| スピンボタンのレンジ設定 [詳解]
|
|
bool | SetValue (CSpinButtonCtrl &ctrl, INT64 value) |
| スピンボタンの現在値設定 [詳解]
|
|
INT64 | GetValue (const CSpinButtonCtrl &ctrl) const |
| スピンボタンの現在値取得 [詳解]
|
|
bool | SetRange (CEvProgressCtrl &ctrl, INT64 lower, INT64 upper) |
| プログレスバーのレンジ設定 [詳解]
|
|
bool | SetValue (CEvProgressCtrl &ctrl, INT64 value) |
| プログレスバーの現在値設定 [詳解]
|
|
INT64 | GetValue (const CEvProgressCtrl &ctrl) const |
| プログレスバーの現在値取得 [詳解]
|
|
virtual void | PostNcDestroy () |
| ウィンドウが破棄された後の処理 [詳解]
|
|
virtual LRESULT | WindowProc (UINT message, WPARAM wParam, LPARAM lParam) |
| メッセージのディスパッチ [詳解]
|
|
virtual void | OnOK () |
| [OK]ボタンが押された時の処理 [詳解]
|
|
virtual void | OnCancel () |
| [CANCEL]ボタンが押された時の処理 [詳解]
|
|
afx_msg void | OnInitMenuPopup (CMenu *, UINT, BOOL) |
| UPDATE_COMMAND_UI 起動処理 [詳解]
|
|
virtual bool | ThreadProc () |
| スレッドによる周期初期関数 [詳解]
|
|
virtual void | OnCommandPre (CEvDialog *dlg, WPARAM wParam, LPARAM lParam) |
| (処理前)コマンドメッセージ処理関数 [詳解]
|
|
virtual void | OnCommandPost (CEvDialog *dlg, WPARAM wParam, LPARAM lParam) |
| (処理後)コマンドメッセージ処理関数 [詳解]
|
|
virtual void | OnWndMsgPre (CEvDialog *dlg, UINT message, WPARAM wParam, LPARAM lParam) |
| (処理前)ウィンドウメッセージ処理関数 [詳解]
|
|
virtual void | OnWndMsgPost (CEvDialog *dlg, UINT message, WPARAM wParam, LPARAM lParam) |
| (処理後)ウィンドウメッセージ処理関数 [詳解]
|
|
|
static UINT | _ThreadKicker (void *pvParam) |
| 周期処理関数の起動スレッド [詳解]
|
|
static void | ICommandPre (void *pvParam, CEvDialog *dlg, WPARAM wParam, LPARAM lParam) |
| (処理前)コマンドメッセージ受信インターフェース [詳解]
|
|
static void | ICommandPost (void *pvParam, CEvDialog *dlg, WPARAM wParam, LPARAM lParam) |
| (処理後)コマンドメッセージ受信インターフェース [詳解]
|
|
static void | IWndMsgPre (void *pvParam, CEvDialog *dlg, UINT message, WPARAM wParam, LPARAM lParam) |
| (処理前)ウィンドウメッセージ受信インターフェース [詳解]
|
|
static void | IWndMsgPost (void *pvParam, CEvDialog *dlg, UINT message, WPARAM wParam, LPARAM lParam) |
| (処理後)ウィンドウメッセージ受信インターフェース [詳解]
|
|