FileOpenDlgの使用方法

FileOpenDlgは、ユーザーがファイルを選択できるようにダイアログを開くための関数で、Windowsオペレーティングシステムによって提供されています。

使用方法はこちら。

  1. まず、Windows.h ヘッダー ファイルを含める必要があります。
  2. FileOpenDlg 関数を用いてファイル ダイアログを開きます。この関数は以下のパラメータを持ちます。
  3. 親ウィンドウのハンドル。このウィンドウの上部にダイアログボックスを表示します。
  4. ユーザーが選択するファイルの種類を制限するファイル フィルタ。例: 「テキスト ファイル(.txt)\0.txt\0すべてのファイル(.)\0*.*\0」。
  5. LPTSTR lpstrFile:ユーザーが選択したファイルのパスを受け取るバッファー。関数を呼び出す前に、このバッファーは既定のファイルパスに初期化する必要があります。
  6. 最大ファイル数(nMaxFile):文字数でのバッファのサイズ
  7. ダイアログタイトル(LPCTSTR lpstrTitle)
  8. DWORDフラグ: 対話の動作を指定するいくつかのフラグ。 例えば、OFN_FILEMUSTEXISTフラグは、ユーザーが既に存在しているファイルのみを選択できるようにします。
  9. 関数の戻り値でユーザーの操作を判定します。関数が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ライブラリをリンクする必要があります。

bannerAds