CFileDialog クラス

 

Visual Studio 2017 RC の最新のドキュメントの詳細については、Visual Studio 2017 RC ドキュメントをご参照ください。

ファイルを開くまたは保存する操作に使用される、コモン ダイアログ ボックスをカプセル化します。

class CFileDialog : public CCommonDialog  

パブリック コンストラクター

名前説明
CFileDialog::CFileDialogCFileDialog オブジェクトを構築します。

パブリック メソッド

名前説明
CFileDialog::AddCheckButtonダイアログ ボックスに、チェック ボタンを追加します。
CFileDialog::AddComboBoxダイアログ ボックスに、コンボ ボックスを追加します。
CFileDialog::AddControlItemダイアログ ボックスのコンテナー コントロールに項目を追加します。
CFileDialog::AddEditBoxダイアログ ボックスを編集ボックスを追加します。
CFileDialog::AddMenuダイアログ ボックスにメニューを追加します。
CFileDialog::AddPlaceオーバーロードされます。 一覧にフォルダーはユーザーが開くか、項目を保存するために使用できる場所を追加します。
CFileDialog::AddPushButtonダイアログ ボックスにボタンを追加します。
CFileDialog::AddRadioButtonListダイアログ ボックスにオプション ボタンとも呼ばれます) グループを追加します。
CFileDialog::AddSeparatorダイアログ ボックスに、区切り記号を追加します。
CFileDialog::AddTextダイアログ ボックスにテキスト コンテンツを追加します。
CFileDialog::ApplyOFNToShellDialog状態を更新、CFileDialogパラメーターとに格納されているフラグが一致するように、m_ofnメンバー変数です。
CFileDialog::DoModalダイアログ ボックスを表示および選択を行うことができます。
CFileDialog::EnableOpenDropDownドロップダウン リストを有効に、開くまたは保存] ダイアログ ボックスのボタンをクリックします。
CFileDialog::EndVisualGroupダイアログ ボックスのビジュアル グループに対する要素の追加を停止します。
CFileDialog::GetCheckButtonStateダイアログ ボックスで、チェック ボタン (チェック ボックス) の現在の状態を取得します。
CFileDialog::GetControlItemStateダイアログ ボックスであるコンテナー コントロール内のアイテムの現在の状態を取得します。
CFileDialog::GetControlState現在の可視性を取得し、特定のコントロールの状態を有効にします。
CFileDialog::GetEditBoxText編集ボックス コントロールで現在のテキストを取得します。
CFileDialog::GetFileExt選択したファイルの拡張子を返します。
CFileDialog::GetFileName選択したファイルのファイル名を返します。
CFileDialog::GetFileTitle選択したファイルのタイトルを返します。
CFileDialog::GetFolderPathエクスプ ローラー スタイルの現在開いているフォルダーまたはディレクトリのパスを取得開くまたは名前を付けて保存コモン ダイアログ ボックス。
CFileDialog::GetIFileDialogCustomizeカスタマイズされた内部 COM オブジェクトを取得CFileDialogオブジェクトです。
CFileDialog::GetIFileOpenDialog内部の COM オブジェクトを取得、CFileDialogとして使用される、開くファイル] ダイアログ ボックス。
CFileDialog::GetIFileSaveDialog内部の COM オブジェクトを取得、CFileDialogとして使用される、保存ファイル] ダイアログ ボックス。
CFileDialog::GetNextPathName次の選択したファイルの完全なパスを返します。
CFileDialog::GetOFN取得、OPENFILENAMEの構造、CFileDialogオブジェクトです。
CFileDialog::GetPathName選択したファイルの完全なパスを返します。
CFileDialog::GetReadOnlyPref選択したファイルの読み取り専用の状態を返します。
CFileDialog::GetResultユーザーがダイアログ ボックスで行った選択を取得します。
CFileDialog::GetResults複数選択が可能なダイアログで、ユーザーの選択肢を取得します。
CFileDialog::GetSelectedControlItemダイアログ ボックスで指定されたコンテナー コントロールからの特定のアイテムを取得します。
CFileDialog::GetStartPositionファイル名の一覧の最初の要素の位置を返します。
CFileDialog::HideControlエクスプ ローラー スタイルで指定したコントロールの表示と非開くまたは名前を付けて保存コモン ダイアログ ボックス。
CFileDialog::IsPickFoldersModeかどうかをフォルダー ピッカー モードの現在のダイアログ ボックス。
CFileDialog::MakeProminentに比べてコントロールに配置] ダイアログで目立つように追加された他のコントロールにします。
CFileDialog::RemoveControlItemコンテナー コントロール] ダイアログ ボックスから項目を削除します。
CFileDialog::SetCheckButtonStateダイアログ ボックスで、チェック ボタン (チェック ボックス) の現在の状態を設定します。
CFileDialog::SetControlItemStateダイアログ ボックスであるコンテナー コントロールの項目の現在の状態を設定します。
CFileDialog::SetControlItemTextコントロールの項目のテキストを設定します。 たとえば、ラジオ ボタンまたはメニュー内の項目に付随するテキストです。
CFileDialog::SetControlLabelボタンのテキストまたはエディット ボックスのラベルなどのコントロールに関連付けられているテキストを設定します。
CFileDialog::SetControlState現在の可視性を設定し、特定のコントロールの状態を有効にします。
CFileDialog::SetControlTextエクスプ ローラー スタイルの指定したコントロールのテキストを設定開くまたは名前を付けて保存コモン ダイアログ ボックス。
CFileDialog::SetDefExtエクスプ ローラー スタイルの既定のファイル名拡張子を設定開くまたは名前を付けて保存コモン ダイアログ ボックス。
CFileDialog::SetEditBoxText編集ボックス コントロールで現在のテキストを設定します。
CFileDialog::SetProperties保存される項目に対して使用される既定値を定義するプロパティ ストアを提供します。
CFileDialog::SetSelectedControlItemオプション ボタン グループ、またはダイアログ ボックスで、特定の項目の選択状態を設定します。
CFileDialog::SetTemplateダイアログ ボックスのテンプレートの設定、CFileDialogオブジェクトです。
CFileDialog::StartVisualGroupダイアログ ボックスでグループを宣言します。 以降、"add"メソッドを呼び出すは、それらの要素をこのグループに追加します。
CFileDialog::UpdateOFNFromShellDialog格納されているデータを更新、m_ofnファイル] ダイアログ ボックスの現在の状態と一致するメンバー変数です。

プロテクト メソッド

名前説明
CFileDialog::OnButtonClickedボタンがクリックされたときに呼び出されます。
CFileDialog::OnCheckButtonToggledチェック ボックスがオンまたはオフにすると呼び出されます。
CFileDialog::OnControlActivatingコントロールがアクティブになると呼び出されます。
CFileDialog::OnFileNameChange処理、WM_NOTIFY CDN_SELCHANGEメッセージです。
CFileDialog::OnFileNameOKダイアログ ボックスに入力したファイル名を検証します。
CFileDialog::OnFolderChange処理、WM_NOTIFY CDN_FOLDERCHANGEメッセージです。
CFileDialog::OnInitDone処理、WM_NOTIFY CDN_INITDONEメッセージです。
CFileDialog::OnItemSelectedコンテナー アイテムが選択されているときに呼び出されます。
CFileDialog::OnLBSelChangedNotifyファイルの選択が変更されたときに、カスタム アクションを実行できます。
CFileDialog::OnShareViolation共有違反を処理します。
CFileDialog::OnTypeChange処理、WM_NOTIFY CDN_TYPECHANGEメッセージです。

パブリック データ メンバー

名前説明
:M_ofnWindowsOPENFILENAME構造体。 基本的なファイル ダイアログ ボックスのパラメーターへのアクセスを提供します。

コモン ファイル ダイアログ ボックスでは、ファイルの選択] ダイアログ ボックス、たとえばを実装することによってファイルを開く名前を付けて保存Windows の標準に一致するようにします。

使用することができますCFileDialogですが、コンス トラクターを持つか、独自のダイアログ ボックス クラスから派生させることができますCFileDialogと、ニーズに合わせてコンス トラクターを記述します。 いずれの場合、これらのダイアログ ボックスと同様に MFC の標準のダイアログ ボックスから派生しているため、 CCommonDialog クラスします。 CFileDialogCOMMDLG に依存します。Windows に含まれている DLL ファイルです。

外観と機能の両方、CFileDialogとWindows VistaWindows の以前のバージョンとは異なります。 既定値CFileDialog自動的には、新しいWindows Vistaせず、プログラムをコンパイルした場合、コードの変更と実行スタイルWindows Vistaします。 使用して、bVistaStyleを手動でこの自動更新をオーバーライドするコンス トラクターのパラメーターです。 自動更新の例外では、カスタマイズしたダイアログ ボックスです。 これらは新しいスタイルに変換されません。 コンス トラクターの詳細については、次を参照してください。 CFileDialog::CFileDialogします。

System_CAPS_ICON_note.jpg メモ

コントロールの ID システムの違いはWindows Vista以前のバージョンの Windows を使用する場合、CFileDialogです。 すべての参照を更新する必要がありますCFileDialog以前のバージョンの Windows からプロジェクトを移植する前に、コード内のコントロールです。

いくつかCFileDialogメソッドは、サポートされていませんWindows Vistaします。 について、メソッドがサポートされているかどうかは個々 のメソッドのトピックを確認してください。 さらに、次の継承された関数はサポートされていませんWindows Vista:

Windows メッセージ、CFileDialogクラスを使用しているオペレーティング システムによって異なります。 たとえば、Windows XP はサポートされませんCDialog::OnCancelCDialog::OnOKCFileDialogクラスです。 ただし、Windows Vistaはそれらをサポートします。 生成されるさまざまなメッセージおよび受信される順序の詳細については、次を参照してください。 CFileDialog サンプル: ログ記録イベントの順序します。

使用する、CFileDialogオブジェクトを使用して、オブジェクトを作成して、CFileDialogコンス トラクターです。 ダイアログ ボックスが構築した後は、設定または任意の値を変更、 ::m_ofn値やダイアログ ボックスのコントロールの状態を初期化するためにします。 m_ofn型の構造は、OPENFILENAMEです。 詳細については、次を参照してください。、 OPENFILENAME構造体、Windows SDKです。

ダイアログ ボックスのコントロールを初期化した後で呼び出し、 CFileDialog::DoModalダイアログ ボックスを表示するメソッドをボックス、ユーザーがパスとファイル名を入力できるようにします。 DoModalユーザーには、[ok] (IDOK) またはキャンセル (IDCANCEL) ボタンがクリックしたかどうかを返します。 場合DoModalIDOK を返すのいずれかを使用することができます、CFileDialogにユーザーが情報を取得するパブリック メンバー関数を配置します。

System_CAPS_ICON_note.jpg メモ

Windows Vistaを複数回呼び出すIFileDialog::SetFileTypesエラーが発生します。 2 番目の呼び出しSetFileTypesのすべてのインスタンス、CFileDialog戻りますE_UNEXPECTEDでWindows Vistaします。 いくつかCFileDialogメソッドの関数呼び出しSetFileTypesします。 たとえば、2 回の呼び出しにCFileDialog::DoModalの同じインスタンスに対して、CFileDialogが生成されますASSERTします。

CFileDialog共有違反、ファイル名の検証および変更通知のリスト ボックスのカスタム処理を実行できるいくつかの保護されたメンバーが含まれます。 これらのプロテクト メンバーは、ほとんどのアプリケーションは、既定の処理は自動的に行われるために使用する必要はありませんコールバック関数です。 標準の仮想関数であるために、これらの関数のメッセージ マップ エントリは必要ありません。

ウィンドウを使用できます情報を得る関数] ダイアログ ボックスの初期化中にエラーが発生したかどうかを確認し、エラーについて説明します。

破棄CFileDialogオブジェクトが自動的に処理されます。 呼び出す必要はありませんCDialog::EndDialogします。

ユーザーが複数のファイルを選択できるように、設定、OFN_ALLOWMULTISELECTフラグを呼び出す前にDoModalします。 複数のファイル名のリストに合わせて独自ファイル名のバッファーを指定してください。 これには、置き換えるm_ofn.lpstrFileバッファーへのポインターが割り当てられていれば、構築した後、CFileDialogを呼び出す前に、DoModalです。

さらに、設定する必要がありますm_ofn.nMaxFileが指すバッファーに文字数を使用して、m_ofn.lpstrFileです。 選択するファイルの最大数を設定するとn、必要なバッファー サイズはn * (_MAX_PATH + 1) + 1です。 バッファーに返される最初の項目は、選択したファイル、フォルダーへのパスです。 Windows Vistaのスタイル] ダイアログ ボックスでは、ディレクトリとファイル名の文字列が最後のファイル名の後、追加の null 文字で、null で終わる。 この形式は、スペースが含まれる長いファイル名を返すエクスプ ローラー スタイルのダイアログ ボックスを使用できます。 旧式のダイアログ ボックスのディレクトリとファイル名の文字列は、スペースで区切られ、関数がスペースを含むファイル名の短いファイル名を使用します。

次の例では、バッファーを使用して取得し、複数のファイル名を一覧表示する方法を示します。

            #define MAX_CFileDialog_FILE_COUNT 99
            #define FILE_LIST_BUFFER_SIZE ((MAX_CFileDialog_FILE_COUNT * (MAX_PATH + 1)) + 1)

            CString fileName;
            wchar_t* p = fileName.GetBuffer( FILE_LIST_BUFFER_SIZE );
            CFileDialog dlgFile(TRUE);
            OPENFILENAME& ofn = dlgFile.GetOFN( );
            ofn.Flags |= OFN_ALLOWMULTISELECT;
            ofn.lpstrFile = p;
            ofn.nMaxFile = FILE_LIST_BUFFER_SIZE;

            dlgFile.DoModal();
            fileName.ReleaseBuffer();

            wchar_t* pBufEnd = p + FILE_LIST_BUFFER_SIZE - 2;
            wchar_t* start = p;
            while( ( p < pBufEnd ) && ( *p ) )
              p++;
            if( p > start )
            {
              _tprintf(_T("Path to folder where files were selected:  %s\r\n\r\n"), start );
              p++;

              int fileCount = 1;
              while( ( p < pBufEnd ) && ( *p ) )
              {
                start = p;
                while( ( p < pBufEnd ) && ( *p ) )
                  p++;
                if( p > start )
                  _tprintf(_T("%2d. %s\r\n"), fileCount, start );
                p++;
                fileCount++;
              }
            }

複数のファイル名を選択すると、ユーザーへの応答のバッファーのサイズを変更するから新しいクラスを派生する必要がありますCFileDialogさせ、 CFileDialog::OnFileNameChangeメソッドです。

新しいクラスを派生させる場合CFileDialog、すべてのメッセージを処理するメッセージ マップを使用することができます。 既定のメッセージ処理を拡張するには、派生クラスをCFileDialogメッセージ マップを新しいクラスに追加し、新しいメッセージのメンバー関数を提供します。 ダイアログ ボックスをカスタマイズするフック関数を用意する必要はありません。

ダイアログ ボックスをカスタマイズするには、派生クラスをCFileDialog拡張されたコントロールからの通知メッセージを処理するメッセージ マップを追加、カスタム ダイアログ ボックス テンプレートを使用します。 基本クラスに処理されないメッセージを渡します。 フック関数をカスタマイズする必要はありません。

使用する場合は、Windows Vistaのスタイル、 CFileDialog、メッセージ マップとダイアログ ボックスのテンプレートを使用することはできません。 代わりに、同様の機能を COM インターフェイスを使用する必要があります。

使用する方法の詳細についてのCFileDialogを参照してくださいコモン ダイアログ クラスします。

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

CFileDialog

ヘッダー: afxdlgs.h

ダイアログ ボックスに、チェック ボタンを追加します。

HRESULT AddCheckButton(
    DWORD dwIDCtl,  
    const CString& strLabel,  
    BOOL bChecked);

パラメーター

dwIDCtl
追加するチェック マークのボタンの ID。

strLabel
チェック ボタンの名前。

bChecked
チェック マークのボタンの現在の状態を示すブール値。 TRUEチェックされている場合FALSEそれ以外の場合

コメント

ダイアログ ボックスに、コンボ ボックスを追加します。

HRESULT AddComboBox(DWORD dwIDCtl);

パラメーター

dwIDCtl
追加するコンボ ボックスの ID。

コメント

ダイアログ ボックスのコンテナー コントロールに項目を追加します。

HRESULT AddControlItem(
    DWORD dwIDCtl,  
    DWORD dwIDItem,  
    const CString& strLabel);

パラメーター

dwIDCtl
項目を追加するコンテナー コントロールの ID。

dwIDItem
項目の ID です。

strLabel
項目のテキスト。

コメント

ダイアログ ボックスを編集ボックスを追加します。

HRESULT AddEditBox(
    DWORD dwIDCtl,  
    const CString& strText);

パラメーター

dwIDCtl
追加する編集ボックスの ID。

strText
編集ボックスの名前。

コメント

ダイアログ ボックスにメニューを追加します。

HRESULT AddMenu(
    DWORD dwIDCtl,  
    const CString& strLabel);

パラメーター

dwIDCtl
追加するメニューの ID。

strLabel
メニューの名前。

コメント

一覧にフォルダーはユーザーが開くか、項目を保存するために使用できる場所を追加します。

void AddPlace(
    LPCWSTR lpszFolder,  
    FDAP fdap = FDAP_TOP) throw();

 
void AddPlace(
    IShellItem* psi,  
    FDAP fdap = FDAP_TOP) throw();

パラメーター

lpszFolder
ユーザーに使用できるフォルダーへのパス。 フォルダーのみ指定できます。

fdap
リスト内でフォルダーを配置する場所を指定します。

psi
使用可能にするユーザーにフォルダーを表す IShellItem へのポインター。 フォルダーのみ指定できます。

コメント

ダイアログ ボックスにボタンを追加します。

HRESULT AddPushButton(
    DWORD dwIDCtl,  
    const CString& strLabel);

パラメーター

dwIDCtl
追加するボタンの ID。

strLabel
ボタンの名前。

コメント

ダイアログ ボックスにオプション ボタンとも呼ばれます) グループを追加します。

HRESULT AddRadioButtonList(DWORD dwIDCtl);

パラメーター

dwIDCtl
追加するオプション ボタン グループの ID。

コメント

ダイアログ ボックスに、区切り記号を追加します。

HRESULT AddSeparator(DWORD dwIDCtl);

パラメーター

dwIDCtl
区切り記号の ID を追加します。

コメント

ダイアログ ボックスにテキストを追加します。

HRESULT AddText(
    DWORD dwIDCtl,  
    const CString& strText);

パラメーター

dwIDCtl
追加するテキストの ID。

strText
テキストの名前。

コメント

現在の状態を更新、 CFileDialogに格納された値に基づいて、m_ofnデータ構造体。

void ApplyOFNToShellDialog();

コメント

前に Windows のバージョンでWindows Vista、メンバー OPENFILENAMEの状態と、このデータ構造を常に同期、CFileDialogです。 変更、 m_ofnメンバー変数が、ダイアログ ボックスの状態に直ちに反映されます。 ダイアログ ボックスの状態への変更が直ちに更新も、m_ofnメンバー変数です。

Windows Vista、内の値、m_ofnメンバー変数との状態、CFileDialog同期とは限りません。 この関数の状態の強制、CFileDialog一致するように更新する、m_ofn構造体。 Windows は時に自動的には、この関数を呼び出しますCFileDialog::DoModalします。

使用する方法の詳細についてのCFileDialogクラスの下にあるWindows Vistaを参照してくださいCFileDialog クラスします。

例を参照してくださいCFileDialog::UpdateOFNFromShellDialogします。

Windows の標準ファイル ダイアログ ボックスを作成するには、この関数を呼び出します。

explicit CFileDialog(
    BOOL bOpenFileDialog,  
    LPCTSTR lpszDefExt = NULL,  
    LPCTSTR lpszFileName = NULL,  
    DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,  
    LPCTSTR lpszFilter = NULL,  
    CWnd* pParentWnd = NULL,  
    DWORD dwSize = 0,  
    BOOL bVistaStyle = TRUE);

パラメーター

[入力] bOpenFileDialog
作成する] ダイアログ ボックスの種類を指定するパラメーター。 設定TRUEを構築する、ファイルを開く] ダイアログ ボックス。 設定FALSEを構築する、ファイル名を付けて] ダイアログ ボックス。

[入力] lpszDefExt
既定のファイル名の拡張子です。 拡張機能が指定された場合は、ユーザーは、ファイル名] ボックス (ユーザーのコンピューターの関連付けのあるもの) 既知の拡張子を含まない、lpszDefExtファイル名に自動的に追加します。 このパラメーターは場合NULL、拡張機能は追加されません。

[入力] lpszFileName
ファイル名] ボックスに表示される初期ファイル名。 場合NULL、初期ファイル名は表示されません。

[入力] dwFlags
ダイアログ ボックスをカスタマイズするのに使用できる&1; つまたは複数のフラグの組み合わせ。 これらのフラグの説明は、次を参照してください。、 OPENFILENAME構造体、Windows SDKです。 変更した場合、m_ofn.Flagsメンバーを構造体、変更内容でビットごとの OR 演算子を使用して、既定の動作をそのまま維持されます。

[入力] lpszFilter
一連のフィルターを指定する文字列のペアをファイルに適用できます。 フィルターを指定する場合は、フィルター条件に一致するファイルのみがファイルの一覧に表示されます。 ファイル フィルターを操作する方法の詳細については、「解説」を参照してください。

[入力] pParentWnd
ファイル ダイアログ ボックスの親またはオーナー ウィンドウへのポインター。

[入力] dwSize
サイズ、OPENFILENAME構造体。 この値は、オペレーティング システムのバージョンによって異なります。 MFC を作成する] ダイアログ ボックスの適切な種類は、このパラメーターを使用する (たとえば、この新しいWindows 2000NT4] ダイアログ ボックスではなくダイアログ ボックス)。 0 の場合、MFC コードが適切なダイアログ ボックスのサイズを決定する既定のサイズは、プログラムが実行されるオペレーティング システムのバージョンに基づいています。

[入力] bVistaStyle
このパラメーターは Visual Studio 2008 では使用し、後で、で実行している場合にのみ使用する新しいスタイル] ダイアログが発生するWindows Vistaまたはそれ以降。

このパラメーターは、ファイル ダイアログ ボックスのスタイルを指定します。 設定TRUEVista スタイルの新しいファイル ダイアログを使用します。 それ以外の場合、古い形式のダイアログ ボックスが使用されます。 Vista で実行されているに関する詳細については「解説」セクションをを表示します。

コメント

いずれか、ファイルを開くまたはファイル名を付けての値に応じて、ダイアログ ボックスが作成されたbOpenFileDialogします。

使用して既定の拡張子を指定するlpszDefExt拡張機能については、ユーザーのコンピューターにファイルのアソシエーションを持つ予測可能ではめったにないために、予測どおりに動作をもたらさないことがあります。 独自のクラスを派生する既定の拡張機能の追加より詳細に制御する場合は、CFileDialogをオーバーライドし、CFileDialog::OnFileNameOKメソッドを自身の拡張機能の処理を実行します。

ユーザーが複数のファイルを選択できるように、設定、OFN_ALLOWMULTISELECTフラグを呼び出す前にDoModalします。 複数のファイル名のリストを格納する独自ファイル名のバッファーを指定する必要があります。 これには、置き換えるm_ofn.lpstrFileバッファーへのポインターが割り当てられていれば、構築した後、 CFileDialogを呼び出す前に、DoModalです。 さらに、設定する必要がありますm_ofn.nMaxFileが指すバッファー内の文字数でm_ofn.lpstrFileします。 選択するファイルの最大数を設定するとn、必要なバッファー サイズはn*(_MAX_PATH + 1) + 1 です。 例:

            #define MAX_CFileDialog_FILE_COUNT 99
            #define FILE_LIST_BUFFER_SIZE ((MAX_CFileDialog_FILE_COUNT * (MAX_PATH + 1)) + 1)

            CString fileName;
            wchar_t* p = fileName.GetBuffer( FILE_LIST_BUFFER_SIZE );
            CFileDialog dlgFile(TRUE);
            OPENFILENAME& ofn = dlgFile.GetOFN( );
            ofn.Flags |= OFN_ALLOWMULTISELECT;
            ofn.lpstrFile = p;
            ofn.nMaxFile = FILE_LIST_BUFFER_SIZE;

            dlgFile.DoModal();
            fileName.ReleaseBuffer();

            wchar_t* pBufEnd = p + FILE_LIST_BUFFER_SIZE - 2;
            wchar_t* start = p;
            while( ( p < pBufEnd ) && ( *p ) )
              p++;
            if( p > start )
            {
              _tprintf(_T("Path to folder where files were selected:  %s\r\n\r\n"), start );
              p++;

              int fileCount = 1;
              while( ( p < pBufEnd ) && ( *p ) )
              {
                start = p;
                while( ( p < pBufEnd ) && ( *p ) )
                  p++;
                if( p > start )
                  _tprintf(_T("%2d. %s\r\n"), fileCount, start );
                p++;
                fileCount++;
              }
            }

マウスまたはキーボードを使用して、[エクスプ ローラー スタイル] ダイアログ ボックスのサイズを変更するユーザーを有効にするには設定、OFN_ENABLESIZINGフラグ。 このフラグを設定することは、フック プロシージャまたはカスタム テンプレートを指定する場合にのみ必要です。 フラグは、エクスプ ローラー スタイル] ダイアログ ボックスでのみ動作します。旧式のダイアログ ボックスのサイズを変更できません。

lpszFilterファイル名、ファイルの一覧に表示する必要のあるファイルの種類を決定するパラメーターを使用します。 文字列のペアの最初の文字列、フィルターを説明します。2 番目の文字列では、使用するファイル名拡張子を示します。 複数の拡張機能は、区切り記号としてセミコロン (';' の文字) を使用して指定できます。 2 つの文字列の末尾に ' |' 文字の後に、NULL文字です。 使用することも、 CStringこのパラメーターにします。

たとえば、Microsoft Excel他 .xlc (グラフ) の拡張機能または .xls (ワークシート) を持つファイルを開くことができます。 Excel 用のフィルターは、としてを記述できます。

         static TCHAR BASED_CODE szFilter[] = _T("Chart Files (*.xlc)|*.xlc|")
            _T("Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|")
            _T("*.xlc; *.xls|All Files (*.*)|*.*||");

ただし、この文字列は直接使用する予定の場合は更新、OPENFILENAME構造体、垂直バーではなく ' \0' での null 文字、文字列を区切る必要があります ('| ')。

bVistaStyleパラメーターで実行されている場合にのみ適用Windows Vistaします。 以前のバージョンの Windows では、このパラメーターは無視されます。 場合bVistaStyleに設定されているTRUEプログラムをコンパイルするときに、Visual Studio 2008またはそれ以降、新しい Vista スタイルファイル ダイアログが適用されます。 それ以外の場合、以前の MFC スタイルファイル ダイアログが適用されます。 参照してくださいCFileDialog クラスの詳細。

ダイアログ テンプレートがに基づいてダイアログでサポートされていませんbVistaStyle

例を参照してくださいCFileDialog::DoModalします。

Windows コモン ファイル ダイアログ ボックスを表示し、ユーザーがファイルとディレクトリを参照して、ファイル名を入力できるようにするには、この関数を呼び出します。

virtual INT_PTR DoModal();

戻り値

IDOKまたはIDCANCELします。 場合IDCANCELは、Windows を呼び出し、返される情報を得るエラーが発生したかどうかを判断します。

IDOKIDCANCELをユーザーが [ok] または [キャンセル] ボタンを選択するかどうかを示す定数です。

コメント

メンバーを設定して、さまざまなファイル] ダイアログ ボックスのオプションを初期化する場合、 m_ofn構造体を呼び出す前に、これを行う必要がありますDoModalはダイアログ オブジェクトを構築します。

たとえば、複数のファイルを選択できるようにする場合は、設定、OFN_ALLOWMULTISELECTフラグを呼び出す前にDoModalのコード例のように、 CFileDialog クラスします。

ダイアログ ボックスの [ok] または [キャンセル] ボタンか、または [閉じる] ダイアログ ボックスのオプションをユーザーがクリックしたコントロール、メニュー、コントロールは、アプリケーションに返されます。 関数を呼び出すことの他のメンバーの設定や情報を取得するユーザー入力] ダイアログ ボックスにします。

DoModalクラスからオーバーライドされた仮想関数は、CDialogです。

void CMyClass::OnFileOpen()
{
   // szFilters is a text string that includes two file name filters:
   // "*.my" for "MyType Files" and "*.*' for "All Files."
   TCHAR szFilters[]= _T("MyType Files (*.my)|*.my|All Files (*.*)|*.*||");

   // Create an Open dialog; the default file name extension is ".my".
   CFileDialog fileDlg(TRUE, _T("my"), _T("*.my"),
      OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters);
   
   // Display the file dialog. When user clicks OK, fileDlg.DoModal() 
   // returns IDOK.
   if(fileDlg.DoModal() == IDOK)
   {
      CString pathName = fileDlg.GetPathName();
   
      // Implement opening and reading file in here.

      //Change the window's title to the opened file's title.
      CString fileName = fileDlg.GetFileTitle();
   
      SetWindowText(fileName);
   }
}

開くときにボタンまたは [保存] ダイアログ ボックスのドロップダウン リストを有効にします。

HRESULT EnableOpenDropDown(DWORD dwIDCtl);

パラメーター

dwIDCtl
ドロップダウン リストの ID。

コメント

ダイアログ ボックスのビジュアル グループに対する要素の追加を停止します。

HRESULT EndVisualGroup();

戻り値

正常終了した場合は S_OK を返します。それ以外の場合エラー値。

コメント

ダイアログ ボックスで、チェック ボタン (チェック ボックス) の現在の状態を取得します。

HRESULT GetCheckButtonState(
    DWORD dwIDCtl,  
    BOOL& bChecked);

パラメーター

dwIDCtl
チェック ボックスの ID です。

bChecked
チェック ボックスの状態。 TRUEchecked; を示しますFALSEオンになっていないことを示します。

コメント

ダイアログ ボックスであるコンテナー コントロール内のアイテムの現在の状態を取得します。

HRESULT GetControlItemState(
    DWORD dwIDCtl,  
    DWORD dwIDItem,  
    CDCONTROLSTATEF& dwState);

パラメーター

dwIDCtl
コンテナー コントロールの ID。

dwIDItem
項目の ID です。

dwState
コントロールの現在の状態を示す CDCONTROLSTATE 列挙体からより多くの値のいずれかを受け取る変数への参照。

コメント

現在の可視性を取得し、特定のコントロールの状態を有効にします。

HRESULT GetControlState(
    DWORD dwIDCtl,  
    CDCONTROLSTATEF& dwState);

パラメーター

dwIDCtl
コントロールの ID です。

dwState
コントロールの現在の状態を示す CDCONTROLSTATE 列挙体から&1; つまたは複数の値を受け取る変数への参照。

コメント

編集ボックス コントロールで現在のテキストを取得します。

HRESULT GetEditBoxText(
    DWORD dwIDCtl,  
    CString& strText);

パラメーター

dwIDCtl
編集ボックスの ID です。

strText
テキスト値。

コメント

この関数では、ダイアログ ボックスに入力されたファイル名の拡張子を取得します。

CString GetFileExt() const;  

戻り値

ファイル名の拡張子です。

コメント

たとえば、ファイルの名前が入力した場合は、データです。TXT、 GetFileExt "TXT"を返します。

場合m_ofn.Flagsが、OFN_ALLOWMULTISELECTフラグを設定、この文字列には、最初の文字列を選択すると、ファイル グループのディレクトリ パスの中で、null で終わる文字列のシーケンスが含まれています。 後に、ユーザーが選択したすべてのファイルの名前。 ファイルのパス名を取得する、メンバー関数。

この関数では、ダイアログ ボックスに入力したファイル名の名前を取得します。

CString GetFileName() const;  

戻り値

ファイルの名前です。

コメント

ファイルの名前には、プレフィックスと拡張機能の両方が含まれています。 たとえば、GetFileName戻ります"テキストです。DAT"C:\FILES\TEXT.DAT ファイルです。

場合m_ofn.Flagsが、OFN_ALLOWMULTISELECTフラグ設定、呼び出す必要がありますファイルのパス名を取得します。

ダイアログ ボックスに入力されたファイルのタイトルを取得するには、この関数を呼び出します。

CString GetFileTitle() const;  

戻り値

ファイルのタイトルです。

コメント

ファイルのタイトルには、パスまたは拡張機能なし、プレフィックスのみが含まれています。 たとえば、 GetFileTitle C:\FILES\TEXT.DAT ファイルの"TEXT"を返します。

場合m_ofn.Flagsが、OFN_ALLOWMULTISELECTフラグを設定、この文字列には、最初の文字列を選択すると、ファイル グループのディレクトリ パスの中で、null で終わる文字列のシーケンスが含まれています。 後に、ユーザーが選択したすべてのファイルの名前。 このため、使用して、メンバー関数を一覧には、次のファイル名を取得します。

例を参照してくださいCFileDialog::DoModalします。

現在開いているフォルダーまたはエクスプ ローラー スタイルのオープンまたは名前を付けて保存の共通のダイアログ ボックスのディレクトリのパスを取得するには、このメンバー関数を呼び出します。

CString GetFolderPath() const;  

戻り値

A CString現在開いているフォルダーまたはディレクトリを含むオブジェクト。

コメント

ダイアログ ボックスが作成されている必要があります、 OFN_EXPLORERスタイル。 それ以外の場合、メソッドは、アサーションに失敗します。

ダイアログ ボックスが表示されている間にのみ、このメソッドを呼び出すことができます。 ダイアログ ボックスが閉じられると、この関数は機能しなくし、このメソッドは、アサーションに失敗します。

内部の COM オブジェクトへのポインターを取得する指定されたCFileDialogします。

IFileDialogCustomize* GetIFileDialogCustomize();

戻り値

内部の COM オブジェクトへのポインター、CFileDialogです。 ユーザーの責任において、このポインターを適切に解放することをお勧めします。

コメント

この関数は下位にのみ使用Windows Vistaを持つオブジェクトでbVistaStyleに設定trueします。 この関数を使用する場合とbVistaStylefalseが返されますNULLリリース モードでデバッグ モードではアサーションをスローします。

詳細については、IFileDialogCustomizeインターフェイスは、「 IFileDialogCustomizeします。

この例では、内部の COM オブジェクトを取得します。 このコード例を実行する、下をコンパイルする必要がありますWindows Vistaします。

        // Get the interface pointer
        IFileDialogCustomize * customDlgPtr = m_myFileDialogPtr->GetIFileDialogCustomize();

        // Make sure that it is not null
        if ( customDlgPtr != NULL )
        {
            //
            // Perform any interface functionality here
            //

            // Release the pointer
            customDlgPtr->Release();
        }

内部の COM オブジェクトへのポインターを取得する指定されたCFileDialogします。

IFileOpenDialog* GetIFileOpenDialog();

戻り値

内部の COM オブジェクトへのポインター、CFileDialogです。 ユーザーの責任において、このポインターを適切に解放することをお勧めします。

コメント

この関数は下位にのみ使用Windows Vistaを持つオブジェクトでbVistaStyleに設定trueします。 この関数を返しますNULL場合、CFileDialogは、開く] ダイアログ ボックスまたはbVistaStyleに設定されているfalseします。 後者の場合、関数のみを返しNULLリリース モードでデバッグ モードでこれはアサーションをスローします。

詳細については、IFileOpenDialogインターフェイスは、「 IFileOpenDialogします。

この例では、内部の COM オブジェクトを取得します。 このコードを実行するには、[コンパイルする必要がありますWindows Vistaします。

        // Get the interface pointer
        IFileOpenDialog * openDlgPtr = m_myFileDialogPtr->GetIFileOpenDialog();

        // Make sure that it is not null
        if ( openDlgPtr != NULL )
        {
            //
            // Perform any interface functionality here
            //

            // Release the pointer
            openDlgPtr->Release();
        }

内部の COM オブジェクトへのポインターを取得する指定されたCFileDialogします。

IFileSaveDialog* GetIFileSaveDialog();

戻り値

内部の COM オブジェクトへのポインター、CFileDialogです。 ユーザーの責任において、このポインターを適切に解放することをお勧めします。

コメント

この関数は下位にのみ使用Windows Vistaを持つオブジェクトでbVistaStyleに設定trueします。 この関数はNULL場合、CFileDialogは、保存] ダイアログ ボックスまたはbVistaStyleに設定されているfalseします。 後者の場合、関数のみを返しNULLリリース モードでデバッグ モードでこれはアサーションをスローします。

詳細については、IFileSaveDialogインターフェイスは、「 IFileSaveDialogします。

この例では、内部の COM オブジェクトを取得します。 このコード例を実行する、下をコンパイルする必要がありますWindows Vistaします。

        // Get the interface pointer
        IFileSaveDialog * saveDlgPtr = m_myFileDialogPtr->GetIFileSaveDialog();

        // Make sure that it is not null
        if ( saveDlgPtr != NULL )
        {
            //
            // Perform any interface functionality here
            //

            // Release the pointer
            saveDlgPtr->Release();
        }

ダイアログ ボックスで選択したグループから次のファイル名を取得するには、この関数を呼び出します。

CString GetNextPathName(POSITION& pos) const;  

パラメーター

pos
参照、位置以前から返される値GetNextPathNameまたはGetStartPosition関数の呼び出しです。 NULLリストの末尾に到達するとします。

戻り値

ファイルの完全パス名を返します。

コメント

ファイル名のパスには、ファイルのタイトルとディレクトリの完全パスが含まれています。 たとえば、 GetNextPathName "C:\FILES\TEXT を返します。DAT"C:\FILES\TEXT.DAT ファイルです。 使用するGetNextPathNameへの呼び出しでは、最初の位置を確立する場合は、順方向の反復ループでGetStartPositionします。

選択範囲は、1 つのファイルで構成され、そのファイル名が返されます。

関連付けられた取得OPENFILENAME構造体。

const OPENFILENAME& GetOFN() const;  
  
OPENFILENAME& GetOFN();

戻り値

OPENFILENAME構造体。

コメント

外観を初期化するためにこの関数の&2; 番目のバージョンを使用して、ファイルを開くまたはファイル名を付けて] ダイアログ ボックスに表示されるようにするが、構築した後、DoModalメンバー関数。 たとえば、設定、キャプションを表示のメンバー m_ofnダイアログ ボックスにはキャプションにします。

ダイアログ ボックスに入力したファイルの完全パスを取得するには、この関数を呼び出します。

CString GetPathName() const;  

戻り値

ファイルの完全パス名を返します。

コメント

ファイル名のパスには、ファイルのタイトルとディレクトリの完全パスが含まれています。 たとえば、 GetPathName "C:\FILES\TEXT を返します。DAT"C:\FILES\TEXT.DAT ファイルです。

場合m_ofn.Flagsが、OFN_ALLOWMULTISELECTフラグを設定、この文字列は、一連の null で終わる文字列の最初の文字列を選択すると、ファイル グループのディレクトリ パスの中で、後に、ユーザーが選択したすべてのファイルの名前。 このため、使用して、メンバー関数を一覧には、次のファイル名を取得します。

例を参照してくださいCFileDialog::DoModalします。

読み取り専用] チェック ボックスを Windows 標準的なファイルを開くとファイル名を付けて] ダイアログ ボックスで選択されているかどうかを判断するには、この関数を呼び出します。

BOOL GetReadOnlyPref() const;  

戻り値

ゼロ以外の値] ダイアログ ボックスでの読み取り専用チェック ボックスがオンの場合それ以外の場合 0 を返します。

コメント

設定して、読み取り専用チェック ボックスを非表示にできます、OFN_HIDEREADONLYでスタイル設定、 CFileDialogコンス トラクターです。

System_CAPS_ICON_note.jpg メモ

Windows VistaスタイルCFileDialogオブジェクトは、この関数をサポートしません。 この関数を使用すると、Windows VistaスタイルCFileDialogをスロー行わないします。 参照してくださいCFileDialog クラスの詳細。

ユーザーがダイアログ ボックスで行った選択を取得します。

IShellItem* GetResult() throw();

戻り値

ユーザーの選択項目を表す IShellItem へのポインター。

コメント

複数選択が可能なダイアログで、ユーザーの選択肢を取得します。

IShellItemArray* GetResults() throw();

戻り値

ダイアログ ボックスで選択した項目のアクセスを IShellItemArray へのポインター。

コメント

ダイアログ ボックスで指定されたコンテナー コントロールからの特定のアイテムを取得します。

HRESULT GetSelectedControlItem(
    DWORD dwIDCtl,  
    DWORD& dwIDItem);

パラメーター

dwIDCtl
コンテナー コントロールの ID。

dwIDItem
ユーザーがコントロールで選択した項目の ID。

コメント

場合に、リスト内の最初のファイルのパス名の位置を取得するには、このメンバー関数を呼び出してm_ofn.Flagsが、OFN_ALLOWMULTISELECTフラグが設定されます。

POSITION GetStartPosition() const;  

戻り値

A位置反復処理に使用できる値NULLリストが空の場合。

エクスプ ローラー スタイルのオープンまたは名前を付けて保存の共通のダイアログ ボックスで指定したコントロールを非表示にするには、このメンバー関数を呼び出します。

void HideControl(int nID);

パラメーター

nID
非表示にするコントロールの ID。

コメント

ダイアログ ボックスが作成されている必要があります、 OFN_EXPLORERスタイル。 それ以外の場合、関数は、アサーションに失敗します。

現在のダイアログ ボックスがフォルダー ピッカー モードのかどうかを判断します。

BOOL IsPickFoldersMode() const;  

戻り値

TRUEフォルダー ピッカー モードの場合は、ダイアログ ボックスそれ以外の場合FALSEします。

コメント

m_ofn型の構造体は、OPENFILENAMEです。 この構造体のデータの現在の状態を表す、CFileDialogです。

コメント

外観を初期化するために、この構造体を使用して、ファイルを開くまたはファイル名を付けて] ダイアログ ボックスを表示する前にそれを作成した後、 DoModalメソッドです。 たとえば、設定、lpstrTitleのメンバーm_ofnダイアログ ボックスにはキャプションにします。

Windows VistaのスタイルCFileDialogm_ofn ] ダイアログ ボックスの状態は常に一致する保証はありません。 以前のバージョンの Windows ダイアログ ボックスと同期します。 参照してくださいCFileDialog::ApplyOFNToShellDialogCFileDialog::UpdateOFNFromShellDialogの同期の詳細については、m_ofn構造およびCFileDialog下にある状態Windows Vistaします。

Windows Vistaスタイルのファイル ダイアログでは、特定のメンバーとのフラグがサポートされません、CFileDialogです。 その結果、この効果はありません。

サポートされていないメンバーの一覧を次に示しますWindows Vista:

  • lpstrCustomFilter

  • lpstrInitialDir

  • lCustData

  • lpfnHook

  • lpTemplateName

次のフラグはサポートされていませんので影響を与えませんを使用する場合、Windows VistaのスタイルCFileDialog:

  • OFN_ENABLEHOOK

  • OFN_ENABLEINCLUDENOTIFY

  • OFN_ENABLETEMPLATE

  • OFN_ENABLETEMPLATEHANDLE

  • OFN_EXPLORER

  • OFN_EXTENSIONDIFFERENT

  • OFN_HIDEREADONLY

  • OFN_LONGNAMES - 常に効果的に上でWindows Vista

  • OFN_NOLONGNAMES - [常に効果的にオフします。Windows Vista

  • OFN_NONETWORKBUTTON - 常に効果的に上でWindows Vista

  • OFN_READONLY

  • OFN_SHOWHELP

この構造体の詳細については、次を参照してください。、 OPENFILENAME構造体、Windows SDKです。 動作の違いの詳細については、 CFileDialog [Windows Vistaを参照してください[CFileDialog クラス](../Topic/CFileDialog%20Class.md)します。

に比べてコントロールに配置] ダイアログで目立つように他のコントロールにします。

HRESULT MakeProminent(DWORD dwIDCtl);

パラメーター

dwIDCtl
コントロールの ID です。

コメント

ボタンがクリックされたときに呼び出されます。

virtual void OnButtonClicked(DWORD dwIDCtl);

パラメーター

dwIDCtl
ボタンの ID です。

コメント

チェック ボックスがオンまたはオフに呼び出されます。

virtual void OnCheckButtonToggled(
    DWORD dwIDCtl,  
    BOOL bChecked);

パラメーター

dwIDCtl
チェック ボックスの ID です。

bChecked
Checked または unchecked です。

コメント

コントロールがアクティブになったときに呼び出されます。

virtual void OnControlActivating(DWORD dwIDCtl);

パラメーター

dwIDCtl
コントロールの ID です。

コメント

このメソッドをオーバーライドして、処理する場合、WM_NOTIFY``CDN_SELCHANGEメッセージです。

virtual void OnFileNameChange();

コメント

システムは、送信、 CDN_SELCHANGE 、ユーザーのファイルの一覧で新しいファイルまたはフォルダーを選択する場合に、メッセージ、開くまたは名前を付けて保存] ダイアログ ボックス。 このメッセージに応答アクションを実行する場合は、このメソッドをオーバーライドします。

システムは、OFN_EXPLORER フラグをオンにします] ダイアログ ボックスが作成された場合にのみ、このメッセージを送信します。 通知の詳細については、次を参照してください。 CDN_SELCHANGEします。 OFN_EXPLORER フラグについては、次を参照してください。、 OPENFILENAME構造と開くとダイアログ ボックスとして保存します。

コモン ファイル ダイアログ ボックスに入力したファイル名のカスタム検証を提供する場合にのみ、この関数をオーバーライドします。

virtual BOOL OnFileNameOK();

戻り値

ファイル名が有効なファイル名ではない場合は 1それ以外の場合 0 を返します。

コメント

この関数では、何らかのアプリケーション固有のファイル名を拒否することができます。 通常、フレームワークは、ファイル名の既定の検証を提供し、無効なファイル名を入力した場合は、メッセージ ボックスを表示するために、この関数を使用する必要はありません。

1 が返されます] ダイアログ ボックスが別のファイル名を入力するユーザーに対して表示されません。 ダイアログの手順は、戻り値が 0 の場合、ダイアログ ボックスを破棄します。 0 以外の値の他の値を返し予約されているので使わないでください。

処理するには、この関数をオーバーライドして、 WM_NOTIFYCDN_FOLDERCHANGEメッセージです。

virtual void OnFolderChange();

コメント

新しいフォルダーを開く] または [ファイル名を名前を付けて保存] ダイアログ ボックスで開いたときに、通知メッセージが送信されます。

ダイアログ ボックスが OFN_EXPLORER スタイルで作成された場合にのみ、通知が送信されます。 通知の詳細については、次を参照してください。 CDN_FOLDERCHANGEします。 OFN_EXPLORER スタイルの詳細については、次を参照してください。、 OPENFILENAME構造と開くとダイアログ ボックスとして保存します。

処理するには、この関数をオーバーライドして、WM_NOTIFY``CDN_INITDONEメッセージです。

virtual void OnInitDone();

コメント

システムのコントロールでの配置が完了すると、システムはこの通知メッセージを送信、開くまたは名前を付けて保存子] ダイアログ ボックスのコントロールを格納できるようにする] ダイアログ ボックス。

ダイアログ ボックスが OFN_EXPLORER スタイルで作成された場合にのみ、システムはこの送信されます。 通知の詳細については、次を参照してください。 CDN_INITDONEします。 OFN_EXPLORER スタイルの詳細については、次を参照してください。、 OPENFILENAME構造と開くとダイアログ ボックスとして保存します。

System_CAPS_ICON_note.jpg メモ

Windows Vistaスタイルのファイル ダイアログは、この関数をサポートしていません。 この関数を使用すると、Windows Vistaスタイル ファイル ダイアログがスローされます行わないします。 参照してくださいCFileDialog クラスの詳細。

コンテナー アイテムが選択されているときに呼び出されます。

virtual void OnItemSelected(
    DWORD dwIDCtl,  
    DWORD dwIDItem);

パラメーター

dwIDCtl
コンテナー コントロールの ID。

dwIDItem
項目の ID です。

コメント

この関数は、リスト ボックスの現在の選択が変更されるたびに呼び出されます。

virtual void OnLBSelChangedNotify(
    UINT nIDBox,  
    UINT iCurSel,  
    UINT nCode);

パラメーター

nIDBox
リスト ボックスまたはコンボ ボックスの選択範囲が発生したの ID。

iCurSel
現在の選択範囲のインデックス。

nCode
コントロール通知のコードです。 このパラメーターは、次の値のいずれかが必要です。

  • CD_LBSELCHANGE指定iCurSel単一選択リスト ボックスで選択された項目。

  • CD_LBSELSUBことを指定iCurSel複数選択のリスト ボックスで選択を解除します。

  • CD_LBSELADDことを指定iCurSel複数選択のリスト ボックスで選択されています。

  • CD_LBSELNOITEMS複数選択のリスト ボックスで選択が存在しないことを指定します。

コメント

リスト ボックスで選択範囲の変更のカスタム処理を指定するには、この関数をオーバーライドします。 この関数を使用するにはアクセス権を表示するなど、日の最終更新の各ファイルのユーザーを選択します。

共有違反のカスタム処理を指定するには、この関数をオーバーライドします。

virtual UINT OnShareViolation(LPCTSTR lpszPathName);

パラメーター

lpszPathName
共有違反が発生したファイルのパス。

戻り値

次のいずれかの値です。

  • OFN_SHAREFALLTHROUGH ] ダイアログ ボックスから、ファイル名が返されます。

  • OFN_SHARENOWARNこれ以上の操作を実行する必要はありません。

  • OFN_SHAREWARNこのエラーの標準的な警告メッセージが表示されます。

コメント

通常、フレームワークが既定の共有違反のチェックを提供し、共有違反が発生した場合は、メッセージ ボックスを表示するために、この関数を使用する必要はありません。

共有違反チェックを無効にする場合は、ビットごとの OR 演算子を使用して、フラグを結合するOFN_SHAREAWAREm_ofn.Flagsです。

処理するには、この関数をオーバーライドして、 WM_NOTIFYCDN_TYPECHANGEメッセージです。

virtual void OnTypeChange();

コメント

新しいファイルの種類の一覧から、開いているファイルの種類のまたは名前を付けて保存] ダイアログ ボックスを選択すると、通知メッセージが送信されます。

ダイアログ ボックスが OFN_EXPLORER スタイルで作成された場合にのみ、通知が送信されます。 通知の詳細については、次を参照してください。 CDN_TYPECHANGEします。 OFN_EXPLORER スタイルの詳細については、次を参照してください。、 OPENFILENAME構造と開くとダイアログ ボックスとして保存します。

コンテナー コントロール] ダイアログ ボックスから項目を削除します。

HRESULT RemoveControlItem(
    DWORD dwIDCtl,  
    DWORD dwIDItem);

パラメーター

dwIDCtl
項目を削除するコンテナー コントロールの ID。

dwIDItem
項目の ID です。

コメント

ダイアログ ボックスで、チェック ボタン (チェック ボックス) の現在の状態を設定します。

HRESULT SetCheckButtonState(
    DWORD dwIDCtl,  
    BOOL bChecked);

パラメーター

dwIDCtl
チェック ボックスの ID です。

bChecked
チェック ボックスの状態。 TRUEchecked; を示しますFALSEオフにした場合を示します。

コメント

ダイアログ ボックスであるコンテナー コントロールの項目の現在の状態を設定します。

HRESULT SetControlItemState(
    DWORD dwIDCtl,  
    DWORD dwIDItem,  
    CDCONTROLSTATEF dwState);

パラメーター

dwIDCtl
コンテナー コントロールの ID。

dwIDItem
項目の ID です。

dwState
1 つまたは複数値 CDCONTROLSTATE 列挙体から、コントロールの新しい状態を示します。

コメント

コントロールの項目のテキストを設定します。 たとえば、ラジオ ボタンまたはメニュー内の項目に付随するテキストです。

HRESULT SetControlItemText(
    DWORD dwIDCtl,  
    DWORD dwIDItem,  
    const CString& strLabel);

パラメーター

dwIDCtl
コンテナー コントロールの ID。

dwIDItem
項目の ID です。

strLabel
項目のテキスト。

コメント

ボタンのテキストまたはエディット ボックスのラベルなどのコントロールに関連付けられているテキストを設定します。

HRESULT SetControlLabel(
    DWORD dwIDCtl,  
    const CString& strLabel);

パラメーター

dwIDCtl
コントロールの ID です。

strLabel
コントロールの名前。

コメント

現在の可視性を設定し、特定のコントロールの状態を有効にします。

HRESULT SetControlState(
    DWORD dwIDCtl,  
    CDCONTROLSTATEF dwState);

パラメーター

dwIDCtl
コントロールの ID です。

dwState
1 つまたは複数の値 CDCONTROLSTATE 列挙体からコントロールの現在の状態を示します。

コメント

エクスプ ローラー スタイルで指定したコントロールのテキストを設定するには、このメソッドを呼び出す開くまたは名前を付けて保存] ダイアログ ボックス。

void SetControlText(
    int nID,  
    LPCSTR lpsz);

 
void SetControlText(
    int nID,  
    const wchar_t *lpsz);

パラメーター

[入力] nID
テキストを設定する対象のコントロールの ID です。

[入力] lpsz
コントロールに対して設定するテキストを含む文字列へのポインター。

コメント

この関数の両方のバージョンでは、Unicode を使用するアプリケーションに対して有効です。 ただし、LPCSTR 型のバージョンのみが正しく使用するアプリケーションのANSIです。

このメソッドを使用するには、OFN_EXPLORER スタイルでダイアログ ボックスを作成する必要があります。 それ以外の場合、関数は、アサーションは失敗します。

エクスプ ローラー スタイルのオープンまたは名前を付けて保存コモン ダイアログ ボックスで既定のファイル名拡張子を設定するには、この関数を呼び出します。

void SetDefExt(LPCSTR lpsz);

パラメーター

lpsz
ダイアログ ボックスのオブジェクトを使用する既定の拡張子を含む文字列へのポインター。 この文字列は、ピリオド (.) を含めることはできません。

コメント

ダイアログ ボックスが作成されている必要があります、 OFN_EXPLORERスタイル。 それ以外の場合、関数は、アサーションに失敗します。

編集ボックス コントロールで現在のテキストを設定します。

HRESULT SetEditBoxText(
    DWORD dwIDCtl,  
    const CString& strText);

パラメーター

dwIDCtl
編集ボックスの ID です。

strText
テキスト値。

コメント

保存される項目に対して使用される既定値を定義するプロパティ ストアを提供します。

BOOL SetProperties(LPCWSTR lpszPropList);

パラメーター

lpszPropList
";" で区切られた定義済みプロパティのリスト。 フラグの一覧は、次を参照してください。、FlagsOPENFILENAMEします。

コメント

オプション ボタン グループ、またはダイアログ ボックスで、特定の項目の選択状態を設定します。

HRESULT SetSelectedControlItem(
    DWORD dwIDCtl,  
    DWORD dwIDItem);

パラメーター

dwIDCtl
コンテナー コントロールの ID。

dwIDItem
ユーザーがコントロールで選択した項目の ID。

コメント

ダイアログ ボックスのテンプレートの設定、 CFileDialogオブジェクトです。

void SetTemplate(
    UINT nWin3ID,  
    UINT nWin4ID);

 
void SetTemplate(
    LPCTSTR lpWin3ID,  
    LPCTSTR lpWin4ID);

パラメーター

[入力] nWin3ID
非エクスプ ローラーのテンプレート リソースの ID 番号を含むCFileDialogオブジェクトです。 このテンプレートは Windows NT 3.51 または OFN_EXPLORER スタイルが存在しない場合にのみ使用されます。

[入力] nWin4ID
エクスプ ローラーのテンプレート リソースの ID 番号を含むCFileDialogオブジェクトです。 このテンプレートはのみで使用されるWindows NT 4.0とそれ以降のバージョン、Windows 95 および以降のバージョンで OFN_EXPLORER スタイルが存在する場合、またはです。

[入力] lpWin3ID
非エクスプ ローラーのテンプレート リソースの名前を含むCFileDialogオブジェクトです。 このテンプレートは Windows NT 3.51 または OFN_EXPLORER スタイルが存在しない場合にのみ使用されます。

[入力] lpWin4ID
エクスプ ローラーのテンプレート リソースの名前を含むCFileDialogオブジェクトです。 このテンプレートはのみで使用されるWindows NT 4.0とそれ以降のバージョン、Windows 95 および以降のバージョンで OFN_EXPLORER スタイルが存在する場合、またはです。

コメント

指定されたテンプレートの&1; つだけが使用されます。 システムでは、OFN_EXPLORER スタイルと、アプリケーションが実行されているオペレーティング システムの存在に基づいて、使用するテンプレートを決定します。 非 Explorer とエクスプ ローラー スタイルのテンプレートの両方を指定するは簡単にサポート Windows NT 3.51Windows NT 4.0とのそれ以降のバージョンと Windows 95 およびそれ以降のバージョン。

System_CAPS_ICON_note.jpg メモ

Windows Vistaファイル ダイアログ ボックスのスタイルは、この関数をサポートしていません。 この関数を使用すると、Windows Vistaスタイル ファイル] ダイアログ ボックスがスローされます行わないします。 参照してくださいCFileDialog クラスの詳細。 別の方法では、カスタマイズされたダイアログを使用します。 詳細については、カスタムのCFileDialogを参照してくださいIFileDialogCustomizeします。

ダイアログ ボックスでグループを宣言します。 以降、"add"メソッドを呼び出すは、それらの要素をこのグループに追加します。

HRESULT StartVisualGroup(
    DWORD dwIDCtl,  
    const CString& strLabel);

パラメーター

dwIDCtl
ビジュアルのグループの ID です。

strLabel
グループの名前。

コメント

更新プログラム、m_ofnのデータ構造、 CFileDialog内部オブジェクトの現在の状態に基づいています。

void UpdateOFNFromShellDialog();

コメント

前に Windows のバージョンでWindows Vista、メンバー OPENFILENAMEの状態と、このデータ構造を常に同期、CFileDialogです。 変更、 m_ofnメンバー変数] ダイアログ ボックスの状態に直接影響します。 また、ダイアログの状態への変更はすぐに m_ofn メンバー変数を更新します。

Windows Vista、m_ofnデータ構造が自動的に更新されません。 内のデータの精度を保証するために、m_ofnメンバー変数を呼び出す必要があります、UpdateOFNFromShellDialogデータにアクセスする前に関数です。 Windows からこの関数が自動的に処理中にIFileDialog::OnFileOKします。

使用する方法の詳細についてのCFileDialogクラスの下にあるWindows Vistaを参照してくださいCFileDialog クラスします。

この例では更新、CFileDialog表示する前にします。 更新する前に、m_ofnメンバー変数] ダイアログ ボックスの現在の状態を同期する必要があります。

        // Update the m_ofn variable
        m_myFileDialogPtr->UpdateOFNFromShellDialog();

        // Change the title
        m_myFileDialogPtr->m_ofn.lpstrTitle = L"New Dialog Title";

        // Apply the changes
        m_myFileDialogPtr->ApplyOFNToShellDialog();

        // Show the window
        LRESULT result = m_myFileDialogPtr->DoModal();

CCommonDialog クラス
階層図

表示: