FileOpenDlgの使用方法
FileOpenDlgは、ユーザーがファイルを選択できるようにダイアログを開くための関数で、Windowsオペレーティングシステムによって提供されています。
使用方法はこちら。
- まず、Windows.h ヘッダー ファイルを含める必要があります。
- FileOpenDlg 関数を用いてファイル ダイアログを開きます。この関数は以下のパラメータを持ちます。
- 親ウィンドウのハンドル。このウィンドウの上部にダイアログボックスを表示します。
- ユーザーが選択するファイルの種類を制限するファイル フィルタ。例: 「テキスト ファイル(.txt)\0.txt\0すべてのファイル(.)\0*.*\0」。
- LPTSTR lpstrFile:ユーザーが選択したファイルのパスを受け取るバッファー。関数を呼び出す前に、このバッファーは既定のファイルパスに初期化する必要があります。
- 最大ファイル数(nMaxFile):文字数でのバッファのサイズ
- ダイアログタイトル(LPCTSTR lpstrTitle)
- DWORDフラグ: 対話の動作を指定するいくつかのフラグ。 例えば、OFN_FILEMUSTEXISTフラグは、ユーザーが既に存在しているファイルのみを選択できるようにします。
- 関数の戻り値でユーザーの操作を判定します。関数が0以外を戻した場合は、ユーザーがファイルを選択したことを表し、lpstrFileパラメータから選択したファイルのパスを取得できます。関数が0を戻した場合は、ユーザーが選択操作をキャンセルしたことを表します。
例えば、以下のコードをご覧ください:
#include <Windows.h>
int main()
{
TCHAR szFile[MAX_PATH] = { 0 };
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = NULL;
ofn.lpstrFilter = TEXT("文本文件(*.txt)\0*.txt\0所有文件(*.*)\0*.*\0");
ofn.lpstrFile = szFile;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrTitle = TEXT("选择文件");
ofn.Flags = OFN_FILEMUSTEXIST;
if (GetOpenFileName(&ofn))
{
// 用户选择了一个文件
// 可以通过szFile获取文件路径
MessageBox(NULL, szFile, TEXT("选择的文件"), MB_OK);
}
else
{
// 用户取消了选择操作
}
return 0;
}
注意:FileOpenDlg関数を使用するには、Comdlg32.libライブラリをリンクする必要があります。