WIL説明書(C++)  3.1.0
全メンバ一覧 | クラス | 公開型 | 公開メンバ関数 | 公開変数類 | 限定公開メンバ関数 | 限定公開変数類

数値エディットコントロールクラス [詳解]

詳解

数値エディットコントロールクラス

整数または実数を入力する為のコントロールです。

このコントロールは、タイトルバーが無いダイアログをモードレスダイアログとして コンテナに貼り付けて、擬似的にコントロールのように見せかけています。 コンテナとなるダイアログのデザイン時に配置する事はできません。 通常は、ダイアログのデザイン時にダミーのエディットボックスを配置し、 実行時にエディットボックスの位置を取得して、このコントロールを貼り付けます。

CEvEditCtrl_preview.png

入力方法は下記の3通りです。


CEvEditCtrl_layout.png
必要条件:
ヘッダー: 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 イベントを監視してください。
■ メッセージマップへの登録:
m_messagemap.AddDialog( &m_edtValue );


■ イベントの監視:
void CMyDlg::OnCommandPost( CEvDialog* dlg, WPARAM wParam , LPARAM lParam )
{
switch( HIWORD(wParam) )
{
case EN_CHANGE:
switch( dlg->GetDlgCtrlFixedID() )
{
case IDC_EDIT_VALUE :
static_cast<CEvEditCtrl*>(dlg)->GetValue( &m_value );
break;
}
}
}

参照
CreateEditCtrl
CEvMessageMap
+ CEvEditCtrl の継承関係図

クラス

struct  tagNUMERIC_TYPE
 数値型共用体 [詳解]
 

公開型

enum  { IDD = IDD_EVC_EDITCTRL }
 
- 基底クラス CEvDialog に属する継承公開型
typedef CEvMessageMap< CEvDialogMESSAGEMAP_T
 メッセージマップクラス型 [詳解]
 

公開メンバ関数

 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 に属する継承公開メンバ関数
 CEvDlgCtrl (CWnd *parent, UINT dlgid)
 コンストラクタ [詳解]
 
- 基底クラス CEvDialog に属する継承公開メンバ関数
 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_TGetMessageMap (UINT index) const
 メッセージマッピングオブジェクトの取得 [詳解]
 
virtual bool ThreadRun ()
 スレッドの起動 [詳解]
 
virtual bool ThreadStop (INT timeout=3000)
 スレッドの休止 [詳解]
 
virtual bool ThreadKill (INT timeout=3000)
 スレッドの破棄 [詳解]
 
virtual INT GetThreadStatus ()
 スレッドの状態取得 [詳解]
 

公開変数類

CString m_strValue
 エディットボックス [詳解]
 
CSpinButtonCtrl m_spinRange
 スピンボタン [詳解]
 
CEvProgressCtrl m_pbarRange
 プログレスバー [詳解]
 
- 基底クラス CEvDialog に属する継承公開変数類
MESSAGEMAP_T m_messagemap
 メッセージマッピングオブジェクト [詳解]
 

限定公開メンバ関数

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
 プログレスバーの現在値取得 [詳解]
 
- 基底クラス CEvDialog に属する継承限定公開メンバ関数
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)
 (処理後)ウィンドウメッセージ処理関数 [詳解]
 

限定公開変数類

INT m_type
 数値の種別 [詳解]
 
tagNUMERIC_TYPE m_value
 現在値 [詳解]
 
tagNUMERIC_TYPE m_lower
 レンジ下限 [詳解]
 
tagNUMERIC_TYPE m_upper
 レンジ上限 [詳解]
 
UINT m_split
 レンジ分割数 [詳解]
 
UINT m_decimal
 小数点以下桁 [詳解]
 
_TCHAR m_format [64]
 数値変換書式 [詳解]
 
bool m_blOmit
 SPIN、PROGRESSへの反映省略 [詳解]
 
- 基底クラス CEvDialog に属する継承限定公開変数類
UINT m_fixedID
 ダイアログ固定ID [詳解]
 
UINT m_type
 ダイアログ種別 [詳解]
 
UINT m_filter
 ダイアログ用途識別フィルタ [詳解]
 
bool m_blAutoDelete
 オブジェクト自動削除フラグ [詳解]
 
HACCEL m_hAccelTable
 アクセラレータ [詳解]
 
FVCL::CFvList< MESSAGEMAP_T * > m_arMessageMap
 メッセージマッピングのコレクション [詳解]
 
INT m_ThreadOrder
 スレッドへの指示 [詳解]
 
INT m_ThreadStatus
 スレッドの状態 [詳解]
 
HANDLE m_hThread
 スレッドハンドル [詳解]
 
UINT m_uiThreadID
 スレッドID [詳解]
 

その他の継承メンバ

- 基底クラス CEvDialog に属する継承静的限定公開メンバ関数
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)
 (処理後)ウィンドウメッセージ受信インターフェース [詳解]
 

列挙型メンバ詳解

anonymous enum
列挙値
IDD 

数値エディットコントロールID

構築子と解体子

CEvEditCtrl::CEvEditCtrl ( CWnd *  parent = NULL,
UINT  dlgid = IDD 
)

コンストラクタ

クラスのオブジェクトが生成された時の初期化処理を行います。

引数
[in]parent親ウィンドウのオブジェクトへのポインタ
NULLを指定した場合は、アプリケーションのメインウィンドウが親になります。
[in]dlgidダイアログID

関数詳解

BOOL CEvEditCtrl::Create ( UINT  ctrlID,
const RECT rect,
CWnd *  parent = NULL,
UINT  dlgid = IDD 
)
virtual

モードレスダイアログの生成

リソースからダイアログ ボックス テンプレートを使って モードレス ダイアログ ボックスを作成します。

引数
[in]ctrlIDコントロールID
[in]rect設置位置
[in]parent親ウィンドウ
[in]dlgidダイアログID
戻り値
TRUE正常に生成されました。
FALSE生成に失敗しました。

CEvDlgCtrlを再実装しています。

BOOL CEvEditCtrl::EnableWindow ( BOOL  bEnable = TRUE)
virtual

マウス/キーボード入力の許可/禁止の設定

マウス/キーボード入力の許可/禁止の設定を行います。 TRUEに設定すると許可、FALSEに設定すると入力を禁止します。

引数
[in]bEnable許可(TRUE)/禁止(FALSE)
戻り値
TRUE入力を許可しました。
FALSE入力を禁止しました。
BOOL CEvEditCtrl::PreTranslateMessage ( MSG *  pMsg)
virtual

ウィンドウメッセージの変換

ウィンドウメッセージがディスパッチされる前に変換します。

引数
[in]pMsg処理するメッセージを保持する MSG 構造体へのポインタ
戻り値
TRUEメッセージ変換済み
FALSEメッセージ未処理
解説:
ここでは、キーボード操作による現在値の増減を行います。 それ以外は、親クラスの処理に依存します。
対応している操作は以下の通りです。
キー 動作
Up +1
Down -1
PageUp +10
PageDown -10

※注意) 数値の種別が実数の場合は m_split に従って増減します。

CEvDlgCtrlを再実装しています。

void CEvEditCtrl::DoDataExchange ( CDataExchange *  pDX)
protectedvirtual

ダイアログ データの交換と有効性チェック

ダイアログ データの交換と有効性チェックのためにフレームワークが呼び出します。

引数
[in]pDXCDataExchange オブジェクトへのポインタ

CEvDlgCtrlを再実装しています。

BOOL CEvEditCtrl::OnInitDialog ( )
protectedvirtual

ダイアログが生成された後の最初の初期化処理

ダイアログを初期化します。

戻り値
常にTRUEを返します。

CEvDlgCtrlを再実装しています。

void CEvEditCtrl::OnChangeEdit ( )
protected

エディットボックスに値が入力された時の処理

エディットボックスに値が入力された時、 スピンボタンとプログレスバーに現在値を反映します。

void CEvEditCtrl::OnVScroll ( UINT  nSBCode,
UINT  nPos,
CScrollBar *  pScrollBar 
)
protected

垂直スクロールイベントが発生した時の処理

スピンボタンがクリックされた時、垂直スクロールイベントが発生します。 イベントの発生元のIDがスピンボタンの時は、 エディットボックスとプログレスバーに現在値を反映します。

引数
[in]nSBCodeスクロール要求を示すスクロールバーのコード
[in]nPosスクロールボックスの現在位置
[in]pScrollBarスクロールバーコントロールへのポインタ
void CEvEditCtrl::OnLButtonDown ( UINT  nFlags,
CPoint  point 
)
protected

マウス(左ボタン)がクリックされた時の処理

プログレスバー上でクリックされた場合は、プログレスバーの現在値を エディットボックスとスピンボタンに反映します。

引数
[in]nFlags仮想キーの押下情報
[in]pointクリックされた座標(ウィンドウの左上隅からの相対位置)
void CEvEditCtrl::OnSize ( UINT  nType,
INT  cx,
INT  cy 
)
protected

サイズが変更された時の処理

ダイアログサイズに合わせて、エディットボックス及び スピンボタン、プログレスバーのサイズを変更します。

引数
[in]nTypeサイズ変更種別
[in]cx変更後の幅
[in]cy変更後の高さ
bool CEvEditCtrl::Update ( bool  bReDraw = true)
virtual

プロパティ更新通知

ダイアログが保持するデータの内容が更新された事を通知します。

引数
[in]bReDraw再描画の指示
  • true: 行う
  • false: 行わない

戻り値
TRUE正常に更新されました。
FALSE更新に失敗しました。

CEvDialogを再実装しています。

bool CEvEditCtrl::SetRange ( INT  lower,
INT  upper 
)

上限値/下限値の設定 (符号つき整数)

符号つき整数の上限値/下限値を設定します。

引数
[in]lower下限値
[in]upper上限値
戻り値
true正常に設定されました。
false設定できませんでした。
解説:
エディットボックスで表示/編集する数値のレンジを設定します。 このメソッドで設定すると、 m_typeFVCL::EditCtrlType::I32m_format が %d に設定されます。
注意:
最大レンジ -(2^31)~(2^31)-1 を指定した場合は、 スピンボタンが上下限で停止せず、ビットが溢れて1周します。
bool CEvEditCtrl::SetRange ( UINT  lower,
UINT  upper 
)

上限値/下限値の設定 (符号なし整数)

符号なし整数の上限値/下限値を設定します。

引数
[in]lower下限値
[in]upper上限値
戻り値
true正常に設定されました。
false設定できませんでした。
解説:
エディットボックスで表示/編集する数値のレンジを設定します。 このメソッドで設定すると、 m_typeFVCL::EditCtrlType::UI32m_format が %u に設定されます。
注意:
最大レンジ 0~(2^32) を指定した場合は、 スピンボタンが上下限で停止せず、ビットが溢れて1周します。
bool CEvEditCtrl::SetRange ( DOUBLE  lower,
DOUBLE  upper 
)

上限値/下限値の設定 (実数)

実数の上限値/下限値を設定します。

引数
[in]lower下限値
[in]upper上限値
戻り値
true正常に設定されました。
false設定できませんでした。
解説:
エディットボックスで表示/編集する数値のレンジを設定します。 このメソッドで設定すると、 m_typeFVCL::EditCtrlType::D64m_format が %.xf に設定されます。
bool CEvEditCtrl::GetRange ( INT lower,
INT upper 
)

上限値/下限値の取得 (符号つき整数)

符号つき整数の上限値/下限値を取得します。

引数
[out]lower下限値
[out]upper上限値
戻り値
true正常に取得できました。
false取得できませんでした。
bool CEvEditCtrl::GetRange ( UINT lower,
UINT upper 
)

上限値/下限値の取得 (符号なし整数)

符号なし整数の上限値/下限値を取得します。

引数
[out]lower下限値
[out]upper上限値
戻り値
true正常に取得できました。
false取得できませんでした。
bool CEvEditCtrl::GetRange ( DOUBLE lower,
DOUBLE upper 
)

上限値/下限値の取得 (実数)

実数の上限値/下限値を取得します。

引数
[out]lower下限値
[out]upper上限値
戻り値
true正常に取得できました。
false取得できませんでした。
bool CEvEditCtrl::SetSplit ( UINT  split)

分割数の設定

レンジの分割数を設定します。

引数
[in]split分割数 (1~ INT_MAX)
戻り値
正常に設定した場合は true を返します。 設定できなければ false を返します。
解説:
SetRange で設定したレンジ幅の分割数を設定します。 この値は、スピンボタンの増減に使用されます。 増減の単位は、レンジ幅(上限-下限) / 分割数 で計算されます。
レンジが 1.0~5.0 の時、分割数を 100 とすると増分が 0.04 になります。
整数(符号つき)の場合は、レンジ幅(上限-下限) が設定されています。 整数(符号なし)の場合は、レンジ幅(上限-下限) を INT_MAX 以下に正規化した値が設定されています。 実数の場合は、既定では 100 に設定されています。
bool CEvEditCtrl::GetSplit ( UINT split) const

分割数の取得

レンジの分割数を取得します。

引数
[out]split分割数
戻り値
正常に取得できた場合は true を返します。 取得できなければ false を返します。
bool CEvEditCtrl::SetDecimal ( UINT  decimal)

小数点以下桁数の設定

小数点以下桁数を設定します。

引数
[in]decimal小数点以下桁数 (1~16)
戻り値
正常に設定した場合は true を返します。 設定できなければ false を返します。
解説:
実数表示の場合の小数点以下桁数を設定します。 decimal に 2 が指定された場合は下記のように表示されます。
####.##


整数表示の場合は、この設定は無視されます。
bool CEvEditCtrl::GetDecimal ( UINT decimal) const

小数点以下桁数の取得

小数点以下桁数を取得します。

引数
[out]decimal小数点以下桁数
戻り値
正常に取得できた場合は true を返します。 取得できなければ false を返します。
bool CEvEditCtrl::SetValue ( INT  value)

現在値の設定

現在値を設定します。

引数
[in]value設定値
戻り値
正常に設定した場合は true を返します。 設定できなければ false を返します。
解説:
指定された値をレンジ範囲で正規化し、 数値の種別(m_type)に従ってキャストして現在値を更新します。
bool CEvEditCtrl::SetValue ( UINT  value)

現在値の設定

現在値を設定します。

引数
[in]value設定値
戻り値
正常に設定した場合は true を返します。 設定できなければ false を返します。
解説:
指定された値をレンジ範囲で正規化し、 数値の種別(m_type)に従ってキャストして現在値を更新します。
bool CEvEditCtrl::SetValue ( DOUBLE  value)

現在値の設定

現在値を設定します。

引数
[in]value設定値
戻り値
正常に設定した場合は true を返します。 設定できなければ false を返します。
解説:
指定された値をレンジ範囲で正規化し、 数値の種別(m_type)に従ってキャストして現在値を更新します。
bool CEvEditCtrl::GetValue ( INT value) const

現在値の取得

現在値を取得します。

引数
[out]value現在値
戻り値
正常に取得できた場合は true を返します。 取得できなければ false を返します。
解説:
現在値を引数の型にキャストして取得します。
bool CEvEditCtrl::GetValue ( UINT value) const

現在値の取得

現在値を取得します。

引数
[out]value現在値
戻り値
正常に取得できた場合は true を返します。 取得できなければ false を返します。
解説:
現在値を引数の型にキャストして取得します。
bool CEvEditCtrl::GetValue ( DOUBLE value) const

現在値の取得

現在値を取得します。

引数
[out]value現在値
戻り値
正常に取得できた場合は true を返します。 取得できなければ false を返します。
解説:
現在値を引数の型にキャストして取得します。
INT64 CEvEditCtrl::Regularize ( INT64  value) const
protected

正規化

指定した値を上下限値内に正規化します。

引数
[in]value対象の値
戻り値
正規化された値を返します。
DOUBLE CEvEditCtrl::Regularize ( DOUBLE  value) const
protected

正規化

指定した値を上下限値内に正規化します。

引数
[in]value対象の値
戻り値
正規化された値を返します。
INT64 CEvEditCtrl::ValueToPercent ( DOUBLE  value) const
protected

実数からパーセント値への変換

実数をパーセント値に変換します。

引数
[in]value実数
戻り値
変換されたパーセント値(0~m_split)を返します。
解説:
引数 value に指定された値を 0~m_split に変換して返します。 中間の値は下記のように計算されます。
差分 * m_split / レンジ

  • レンジ = 上限 - 下限
  • 差分 = value - 下限

DOUBLE CEvEditCtrl::PercentToValueD ( INT64  percent) const
protected

パーセント値から実数への変換

パーセント値を実数に変換します。

引数
[in]percentパーセント (0~m_split)
戻り値
変換された実数を返します。
解説:
引数 percent に指定された値を 下限~上限 に変換して返します。 中間の値は下記のように計算されます。
percent * レンジ / m_split + 下限

  • レンジ = 上限 - 下限

bool CEvEditCtrl::SetRange ( CSpinButtonCtrl &  ctrl,
INT64  lower,
INT64  upper 
)
protected

スピンボタンのレンジ設定

スピンボタンのレンジを設定します。

数値の種別が実数の時は ValueToPercent で変換した値を指定してください。

引数
[in,out]ctrlスピンボタンコントロールへの参照
[in]lower下限
[in]upper上限
戻り値
true正常
false異常
下記の条件はエラーとなります。
  • lower が FVCL::TypeRange::INT::Lower を下回っている。
  • upper と lower の差が FVCL::TypeRange::UINT::Upper を超過している。

解説:
スピンボタンのレンジを UINT の上限まで設定できるように擬似的に設定します。 引数に指定された上下限が INT の範囲の場合は、そのまま設定されます。 例えば、 lower が 0 、 upper が 2^32 の場合、 スピンボタンのレンジは -(2^31) ~ (2^31)-1 に設定されます。 取得の際は、下限からの相対値を返します。
参考:
本来、スピンボタンのレンジの限界値は -(2^31) ~ (2^31)-1 です。
bool CEvEditCtrl::SetValue ( CSpinButtonCtrl &  ctrl,
INT64  value 
)
protected

スピンボタンの現在値設定

スピンボタンの現在値を設定します。

数値の種別が実数の時は ValueToPercent で変換した値を指定してください。

引数
[in,out]ctrlスピンボタンコントロールへの参照
[in]value設定値
戻り値
true正常
false異常
下記の条件はエラーとなります。
  • 設定値(value) に m_lower と m_upper の範囲外の値が指定された。

解説:
スピンボタンの現在値を UINT の上限まで指定できるように擬似的に設定します。
INT64 CEvEditCtrl::GetValue ( const CSpinButtonCtrl &  ctrl) const
protected

スピンボタンの現在値取得

スピンボタンの現在値を取得します。

引数
[in]ctrlスピンボタンコントロールへの参照
戻り値
スピンボタンの現在値を返します。
数値の種別が実数の時は、この戻り値を PercentToValueD で変換してください。
bool CEvEditCtrl::SetRange ( CEvProgressCtrl ctrl,
INT64  lower,
INT64  upper 
)
protected

プログレスバーのレンジ設定

プログレスバーのレンジを設定します。

数値の種別が実数の時は ValueToPercent で変換した値を指定してください。

引数
[in,out]ctrlプログレスバーコントロールへの参照
[in]lower下限
[in]upper上限
戻り値
true正常
false異常
下記の条件はエラーとなります。
  • 設定値(value) に m_lower と m_upper の範囲外の値が指定された。

解説:
プログレスバーのレンジを UINT の上限まで設定できるように擬似的に設定します。 引数に指定された上下限値の範囲が、プログレスバーの水平サイズ-2(ドット)を超える場合は レンジを 0~水平サイズ-2 に設定します。 取得の際は、擬似的なレンジを本来のレンジに換算します。
参考:
本来、プログレスバーのレンジの限界値は -217483648~217483648 です。
bool CEvEditCtrl::SetValue ( CEvProgressCtrl ctrl,
INT64  value 
)
protected

プログレスバーの現在値設定

プログレスバーの現在値を設定します。

数値の種別が実数の時は ValueToPercent で変換した値を指定してください。

引数
[in,out]ctrlプログレスバーコントロールへの参照
[in]value設定値
戻り値
true正常
false異常
INT64 CEvEditCtrl::GetValue ( const CEvProgressCtrl ctrl) const
protected

プログレスバーの現在値取得

プログレスバーの現在値を取得します。

引数
[in]ctrlプログレスバーコントロールへの参照
戻り値
プログレスバーの現在値を返します。
数値の種別が実数の時は、この戻り値を PercentToValueD で変換してください。

メンバ詳解

CString CEvEditCtrl::m_strValue

エディットボックス

エディットボックスに関連付けられた文字列オブジェクトです。

CSpinButtonCtrl CEvEditCtrl::m_spinRange

スピンボタン

スピンボタンコントロールオブジェクトです。

CEvProgressCtrl CEvEditCtrl::m_pbarRange

プログレスバー

プログレスバーコントロールオブジェクトです。

INT CEvEditCtrl::m_type
protected

数値の種別

エディットボックスで表示/編集する数値の種別を示します。
下記の定数で表されます。

  • FVCL::EditCtrlType::I32 ... 整数(符号付き)
  • FVCL::EditCtrlType::UI32 ... 整数(符号なし)
  • FVCL::EditCtrlType::D64 ... 実数


CEvEditCtrl::tagNUMERIC_TYPE CEvEditCtrl::m_value
protected

現在値

このコントロールの現在値を保持します。
数値の種別(m_type)が整数の場合は、 m_value.iValue から値を取得します。 実数の場合は、 m_value.dbValue から値を取得します。

CEvEditCtrl::tagNUMERIC_TYPE CEvEditCtrl::m_lower
protected

レンジ下限

このコントロールのレンジの下限値を保持します。
数値の種別(m_type)が整数の場合は、 m_lower.iValue から値を取得します。 実数の場合は、 m_lower.dbValue から値を取得します。

CEvEditCtrl::tagNUMERIC_TYPE CEvEditCtrl::m_upper
protected

レンジ上限

このコントロールのレンジの上限値を保持します。
数値の種別(m_type)が整数の場合は、 m_upper.iValue から値を取得します。 実数の場合は、 m_upper.dbValue から値を取得します。

UINT CEvEditCtrl::m_split
protected

レンジ分割数

レンジの幅の分割数を保持します。 数値の種別(m_type)が実数の時に使用されます。 分割数によって、増減の単位が決定します。 例えば、レンジが 0.0~2.0 の時、分割数を 100 とすると、 増減値は 0.02 [(2.0-0.0)/100] となります。

UINT CEvEditCtrl::m_decimal
protected

小数点以下桁

小数点以下の桁数を保持します。 数値の種別(m_type)が実数の時に使用されます。

_TCHAR CEvEditCtrl::m_format[64]
protected

数値変換書式

符号つき整数の場合:
\%d

符号なし整数の場合:
\%u

実数の場合:
\%.xf

※ x の部分は、 m_decimal に設定された値になります。
bool CEvEditCtrl::m_blOmit
protected

SPIN、PROGRESSへの反映省略


Documentation copyright © 2007 FAST Corporation. [B-001864]
Generated on 2024年10月10日(木) 10時01分27秒 for WIL説明書(C++) by doxygen 1.8.11