「CEditを継承したクラスを作成する」の版間の差分

ナビゲーションに移動 検索に移動
文字列「<source lang」を「<syntaxhighlight lang」に置換
(文字列「<source lang」を「<syntaxhighlight lang」に置換)
2行目: 2行目:
CEditを継承したクラスを作成し、OnChar関数をオーバーライドする。
CEditを継承したクラスを作成し、OnChar関数をオーバーライドする。


  <source lang="c++">
  <syntaxhighlight lang="c++">
  CNumericEdit.h
  CNumericEdit.h
   
   
35行目: 35行目:
  </source>
  </source>
<br>
<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  #include "stdafx.h"
  #include "stdafx.h"
  #include "CNumericEdit.h"
  #include "CNumericEdit.h"
119行目: 119行目:
DoModal()関数がIDOKを返した時点で、ダイアログ内のコントロールが破棄されてしまうため、値を取得する事ができない。<br>
DoModal()関数がIDOKを返した時点で、ダイアログ内のコントロールが破棄されてしまうため、値を取得する事ができない。<br>
この場合、メンバにCString型の変数を定義し、DDX_Textで値を更新する。<br>
この場合、メンバにCString型の変数を定義し、DDX_Textで値を更新する。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  CMyDialog dlg;
  CMyDialog dlg;
   
   
133行目: 133行目:
== 入力値の制限と値取得を同時に行う ==
== 入力値の制限と値取得を同時に行う ==
CEdit型とCString型の変数を定義し、DoDataExchange内に、DDXControlとDDXTEXTを追加する。
CEdit型とCString型の変数を定義し、DoDataExchange内に、DDXControlとDDXTEXTを追加する。
  <source lang="c++">
  <syntaxhighlight lang="c++">
  void CMyDialog::DoDataExchange(CDataExchange* pDX)
  void CMyDialog::DoDataExchange(CDataExchange* pDX)
  {
  {
150行目: 150行目:
ダイアログデータバリデーション(DDV)を使用する。<br>
ダイアログデータバリデーション(DDV)を使用する。<br>
DoDataExchange()内に下記のように関数を追加する。<br>
DoDataExchange()内に下記のように関数を追加する。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  void CMyDialog::DoDataExchange(CDataExchange* pDX)
  void CMyDialog::DoDataExchange(CDataExchange* pDX)
  {
  {
173行目: 173行目:
そこで、データが有効か確認するための独自関数を作成する。<br>
そこで、データが有効か確認するための独自関数を作成する。<br>
<br>
<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  void DDV_CheckLowerUpper(CDataExchange* pDX, double lower, double upper)
  void DDV_CheckLowerUpper(CDataExchange* pDX, double lower, double upper)
  {
  {
184行目: 184行目:
  </source>
  </source>
上記の関数を、DoDataExchange()内に追記する。<br>
上記の関数を、DoDataExchange()内に追記する。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  void CMyDialog::DoDataExchange(CDataExchange* pDX)
  void CMyDialog::DoDataExchange(CDataExchange* pDX)
  {
  {

案内メニュー