●はじめに (1999/03/22 KPJ)
今回は、コモンダイアログの使い方について書きたいと思います。
サンプルプログラムもちょっとだけ複雑になります。
●コモンダイアログとは?
いろいろなプログラムを作っていると、同じような処理をしたいということがよくあります。
例えば、ファイルを開く処理や、ファイルの保存処理といったものがありますね。
オープンするファイルや保存するファイルを選択する操作をダイアログボックスからできれば便利ですが、自分で作るとなると一苦労ですよね。
Windowsでは、プログラムを作る上でよく使いそうなダイアログボックスはあらかじめ用意されていて、これらをコモンダイアログと呼びます。
今回は「ファイルを開く」ためのコモンダイアログについて説明します。
●GetOpenFileName関数でファイルを選択
GetOpenFileNameは、

BOOL GetOpenFileName(LPOPENFILENAME lpofn)

と定義されています。

lpofnは、OPENFILENAMEという構造体のポインタです。
GetOpenFileName関数を使うためには、OPENFILENAME構造体に値をセットする必要があります。
いつものようにサンプルソースを用意しましたので、それに沿って説明します。

サンプルソースで、OPENFILENAME構造体にセットしている値は以下の通りです。

lStructSize : 構造体のサイズ(必ずセットしてください)
hwndOwner : 親ウィンドウのハンドル
lpstrFilter : ダイアログで選択できる拡張子の種類、複数ある場合は続けて記述
nFilterIndex : ダイアログが開いた時に選択されている拡張子が lpstrFilterの何番目かを記述、一番最初であれば 1をセット
lpstrFile : 選択されたファイル名を代入するためのバッファ
nMaxFile : lpstrFileにセットしたバッファのサイズ
lpstrTitl : ダイアログのタイトル部分に表示される文字列
lpstrDefExt : 選択したファイル名の拡張子が省略されている場合に追加する拡張子
Flags : ダイアログにセットする各種オプション

サンプルソースで Flagsにセットした値は以下の通りです。

OFN_PATHMUSTEXIST : 存在するパスだけがダイアログで選択可能
OFN_FILEMUSTEXIST : 存在するファイル名だけがダイアログで選択可能
OFN_HIDEREADONLY : 「読みとり専用」のチェックボックスを非表示

●あとがき
GetOpenFileName関数は、TeamSchaftのプログラムだけに限らず、いろいろなところで利用されています。
次回は、「ファイルを保存」の前に利用するコモンダイアログについて紹介したいと思います。