02.リストコントロールを使う (その1)

初回は、ダイアログベースのプロジェクトを作成するところまでやりました。今回は、そのダイアログにリストコントロールを配置して、図のようなダイアログを作成するまでを書きます。

さて、ダイアログを編集するのにリソースエディタを使います。Visual Studioのリソースビューが表示されていないときは、メニューの表示→リソースビューを選び、リソースビューを表示させます。

そのソースビューのDialogの中にあるIDD_SLIDEPUZLE_DIALOGをダブルクリックして、リソースエディタを起動して下さい。

リソースエディタを開けましたか?

ここにリストコントロールを追加するのですが、その前に今回は使用しないスタティックテキストとOK, CANCELボタンを削除します。Ctrl+Aですべてのコントロールを選択し、deleteキーで削除しちゃって下さい。

ツールボックスからリストコントロールを選択し、ダイアログ上で左クリックしてリストコントロールを追加します。

リストコントロールのプロパティを変更します。リストコントロールを選択して、ポップアップメニュー(右クリック)からプロパティを実行して下さい。

IDをIDC_LISTに変更します。(IDはなんでもよいので、好きなIDを設定して下さい)

Viewをレポートにします。

さて、この時点で一度実行してみましよう。F5ボタンで実行です。図のように表示されましたか?まだ、リストコントロールに値を設定していないので、リストコントロールは真っ白の四角です。

ダイアログにこのリストコントロールの変数を追加しましょう。
リストコントロールを選択して、ポップアップメニュー(右クリック)から変数の追加を実行して下さい。

メンバー変数の追加画面が表示されるので、変数名 m_LC を入力して、完了ボタンをおします。

変数が、CSlidePuzzleDlg に自動で追加されるので、ソースを確認してみましょう。
Visual Studio のショートカット Ctrl + Shift +F で検索画面を表示します。検索する文字列に追加した変数名 m_LC を、検索対象を現在のプロジェクトにして検索します。

検索すると、2か所に追加されたことがわかります。

// CSlidePuzzleDlg.h

class CSlidePuzzleDlg : public CDialogEx
    CListCtrl m_LC;
};
//CSlidePuzzleDlg.cpp

void CSlidePuzzleDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_LIST, m_LC);
}

Visual StudioIDEを初めて使うと魔法のように感じるかもしれませんが(私だけ?)、結局のところソースを手で書く代わりにIDEの操作を実行しているだけです。先の変数の追加もリソースエディタを使わずに手でコードを書いても問題ありません。
自分はこの事をVisual Stuidoの入門時に一言教えてもらってれば、後で余計な混乱をしなくてよかったのにと思ってたので「一言」言ってみました。

だいぶ長くなってしまったので、次回につづく