ぴぐノート

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入門】メッセージボックスにエラーコードを表示させよう

ライブラリなどを使用していると、戻り値にエラーコードを返す関数は比較的多いです。 GetLastError関数(最新のエラーコードを取得する関数)がライブラリに含まれていることもありますが、そうでない …

【Visual C++】フルパスを指定してフォルダー階層を作成する。

MFCなどでファイル走査などのプログラミングを行っていると、D&D(ドラッグアンドドロップ)されたフォルダー内の全ファイル(サブフォルダー含め)に何か処理を行い、同じような階層を維持したまま別 …

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

プログレスバーをマルチスレッドを用いた実装について最後の記事です。 引き続き作成の目的は、 スレッド実行中はモーダルダイアログを表示させること。 モーダルダイアログではプログレスバーを表示し進捗が分か …

【MFC】フォルダー選択ダイアログの表示【Visual C++】

出力先の指定などフォルダー選択のダイアログを表示させたいことがあります。 フォルダー選択ダイアログを表示させるためには、SHBrowseForFolder関数を使います。 SHBrowseForFol …

【MFC入門】MFCについて知ろう【Visual C++】

Windowsのアプリ開発で最もポピュラーな開発環境はやはりMFCでしょうか。 MFC(Microsoft Foundation Class)とはVisual Studioに組み込まれているアプリケー …