ぴぐノート

Good code is its own best documentation.

MFC

【MFC入門】エディットコントロールの使い方【Visual C++】

投稿日:

前回はボタンが押された際のイベントハンドラーを実装しました。
今回はボタンと同じく利用機会の多いEdit Controlについて実装してみましょう。

ダイアログエディターからEdit Controlを追加するとエディットボックスが作成できます。
何かの値やメッセージの表示などによく利用される読み取り専用(Read Only)と書き込み可能なエディットボックスを2つ用意して、入力された値を表示するようなサンプルプログラムを作ります。

エディットボックスに入力できるサンプルを作ろう

プロジェクトの作成方法:無料のVisual StudioをインストールしてMFCを動かそう

エディットボックスを作ろう

まずは、プロジェクトを作成しツールボックスを表示させる必要があります。

  1. メニューバーより、[表示] – [ツールボックス]をクリックすると左側ペインにツールボックスが表示されます。
    出たり消えたりするのも困るので、ツールボックスタイトル部のピンをクリックし、固定しておきます。
    mfc_edit_ctrl_001
  2. ダイアログエディターから、Edit Controlをクリックし、ダイアログボックスに追加します。
    もう一度Edit Controlをクリックし読み取り専用のものを追加しておきます。
  3. 1つを読み取り専用にするため、任意のエディットボックスをクリックし、プロパティからRead OnlyをTrueに変更します。
    mfc_edit_ctrl_002

これでダイアログボックス内に2つのエディットボックス(1つは読み取り専用)が作成できました。

入力された値を保持する変数を宣言しよう。

次にエディットボックスに表示される文字列、CString型の変数を宣言します。

  1. 書き込み可能なエディットボックスを右クリックし、[変数の追加]をクリックします。
  2. メンバー変数の追加ウィザードが表示され、追加する変数の設定を行います。
    アクセスはprivate、カテゴリはvalue、変数名は任意に設定してください。
    mfc_edit_ctrl_003
  3. [完了]ボタンをクリックすると、Dlg.hにCString型の変数が宣言されます。
  4. 同じように、読み取り専用のエディットボックスにも変数を追加しておきましょう。

トリガーとなるボタンを配置しよう。

最後に、画面を更新するボタンを、前回の記事を参考に作成しておきましょう!

関連リンク:【MFC入門】MFCについて知ろう【Visual C++】

コーディングしよう。

外観や変数の宣言が終われば、動作の決めるためにソースコードを編集しましょう。

まずは、ボタンが押されたら画面が更新されるようにします。
前回同様にボタンのイベントハンドラーを以下のように記述します。

writableEditは先ほど追加したCString型の変数名を指定してください。

読み取り専用のエディットボックスには初期値を設定しましょう。
プロジェクトを作成するとOnInitDialog()が宣言されていますので、以下のように初期値の設定を追加します。

13行目と14行目が追加したコードです。
readOnlyEditには読み取り専用のエディットボックスに追加したCString型変数を指定します。

これで読み取り専用のエディットボックスには指定した、「初期値」という値が表示されます。
書き込み可能なエディットボックスに何か文字を入力し、[OK]ボタンを押下するとメッセージボックスが表示され、入力した文字列が表示されるはずです。

簡単でしたね!

まとめ

何か文字の入力を促したり、実行結果を表示したりする際に、エディットボックスは活用されます。
基本としては「エディットボックスに変数を追加し、ボタンなどで実行させる」という形になるでしょうか。

ぜひ一度プログラミングを行って結果を確認してみてくださいね。

スポンサーリンク

スポンサーリンク

-MFC

執筆者:

関連記事

【MFC入門】ダイアログにファイルをドラッグアンドドロップしよう【Visual C++】

ファイル操作を行うツールなどを作成する際には、ファイルをドラッグアンドドロップできると便利です。 ファイルがどこにあるか分からない場合などは参照させることも多いと思いますが、プログラムやファイルの検証 …

【OpenCV】MFCのピクチャーコントロールに描画しよう!

前回、OpenCVを使って画像の回転や二値化などを行って動作確認をしました。 今回はMFCでダイアログベースのアプリケーションを作成し、ピクチャーコントロールにOpenCVで読み込んだ画像を表示させて …

【MFC】マルチスレッドでプログレスバーを実装しよう その1

実は今回紹介する方法は、もしかしたら正しくないのかもしれません。 ダイアログベースのプログラムで以下の条件を満たし、プログレスバーを表示したいと考えました。 スレッド実行中はモーダルダイアログを表示さ …

【MFC】マルチスレッドでプログレスバーを実装しよう その2

昨日に続き、プログレスバーをマルチスレッドを用いて実装してみましょう。 作成の目的は、 スレッド実行中はモーダルダイアログを表示させること。 モーダルダイアログではプログレスバーを表示し進捗が分かるこ …

【MFC入門】ツリーコントロールでフォルダ内のファイルを表示しよう【Visual C++】

エクスプローラーのディレクトリー構成などツリーコントロールの活用場面は多いです。 ドラッグアンドドロップされたフォルダーに格納されている、フォルダー/ファイルを表示できれば、どのファイルにアクセスする …