CFileDialog クラスCFileDialog Class

ファイルのオープンまたはファイルの保存操作に使用されるコモンダイアログボックスをカプセル化します。Encapsulates the common dialog box that is used for file open or file save operations.

構文Syntax

class CFileDialog : public CCommonDialog

メンバーMembers

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

名前Name 説明Description
CFileDialog::CFileDialogCFileDialog::CFileDialog CFileDialog オブジェクトを構築します。Constructs a CFileDialog object.

パブリック メソッドPublic Methods

名前Name 説明Description
CFileDialog:: AddCheckButtonCFileDialog::AddCheckButton ダイアログにチェックボタンを追加します。Adds a check button to the dialog.
CFileDialog:: AddComboBoxCFileDialog::AddComboBox ダイアログにコンボボックスを追加します。Adds a combo box to the dialog.
CFileDialog:: AddControlItemCFileDialog::AddControlItem ダイアログのコンテナーコントロールに項目を追加します。Adds an item to a container control in the dialog.
CFileDialog:: AddEditBoxCFileDialog::AddEditBox ダイアログにエディットボックスを追加します。Adds an edit box to the dialog.
CFileDialog:: AddMenuCFileDialog::AddMenu メニューをダイアログに追加します。Adds a menu to the dialog.
CFileDialog:: AddPlaceCFileDialog::AddPlace オーバーロードされます。Overloaded. ユーザーが項目を開いたり保存したりできる場所の一覧にフォルダーを追加します。Adds a folder to the list of places available for the user to open or save items.
CFileDialog:: AddPushButton プッシュボタンCFileDialog::AddPushButton ダイアログにボタンを追加します。Adds a button to the dialog.
CFileDialog:: AddRadioButtonListCFileDialog::AddRadioButtonList ダイアログにオプションボタン (ラジオボタンとも呼ばれます) グループを追加します。Adds an option button (also known as radio button) group to the dialog.
CFileDialog:: AddSeparatorCFileDialog::AddSeparator ダイアログに区切り記号を追加します。Adds a separator to the dialog.
CFileDialog:: AddTextCFileDialog::AddText ダイアログにテキストの内容を追加します。Adds text content to the dialog.
CFileDialog:: ApplyOFNToShellDialogCFileDialog::ApplyOFNToShellDialog CFileDialogメンバー変数に格納されているパラメーターとフラグに一致するように、の状態を更新し m_ofn ます。Updates the state of the CFileDialog to match the parameters and flags stored in the m_ofn member variable.
CFileDialog: oModal:DCFileDialog::DoModal ダイアログボックスを表示し、ユーザーが選択できるようにします。Displays the dialog box and enables the user to make a selection.
CFileDialog:: EnableOpenDropDownCFileDialog::EnableOpenDropDown ダイアログの [ 開く ] または [ 保存 ] ボタンのドロップダウンリストを有効にします。Enables a drop-down list on the Open or Save button in the dialog.
CFileDialog:: EndVisualGroupCFileDialog::EndVisualGroup ダイアログのビジュアルグループへの要素の追加を停止します。Stops the addition of elements to a visual group in the dialog.
CFileDialog:: GetCheckButtonStateCFileDialog::GetCheckButtonState ダイアログのチェックボタン (チェックボックス) の現在の状態を取得します。Gets the current state of a check button (check box) in the dialog.
CFileDialog:: GetControlItemStateCFileDialog::GetControlItemState ダイアログで見つかったコンテナーコントロール内の項目の現在の状態を取得します。Gets the current state of an item in a container control found in the dialog.
CFileDialog:: GetControlStateCFileDialog::GetControlState 指定したコントロールの現在の可視性と有効な状態を取得します。Gets the current visibility and enabled states of a given control.
CFileDialog:: GetEditBoxTextCFileDialog::GetEditBoxText エディットボックスコントロール内の現在のテキストを取得します。Gets the current text in an edit box control.
CFileDialog:: GetFileExtCFileDialog::GetFileExt 選択されたファイルの拡張子を返します。Returns the extension of the selected file.
CFileDialog:: GetFileNameCFileDialog::GetFileName 選択されたファイルのファイル名を返します。Returns the file name of the selected file.
CFileDialog:: GetFileTitleCFileDialog::GetFileTitle 選択されたファイルのタイトルを返します。Returns the title of the selected file.
CFileDialog:: GetFolderPathCFileDialog::GetFolderPath エクスプローラー形式の 開い ている、または [共通に保存] ダイアログボックスで現在開い いるフォルダーまたはディレクトリのパスを取得します。Retrieves the path of the currently open folder or directory for an Explorer-style Open or Save As common dialog box.
CFileDialog:: GetIFileDialogCustomizeCFileDialog::GetIFileDialogCustomize カスタマイズされたオブジェクトの内部 COM オブジェクトを取得し CFileDialog ます。Retrieves the internal COM object for a customized CFileDialog object.
CFileDialog:: GetIFileOpenDialogCFileDialog::GetIFileOpenDialog CFileDialog[ファイルを 開く] ダイアログボックスとして使用されるの内部 COM オブジェクトを取得します。Retrieves the internal COM object for a CFileDialog that is used as an Open file dialog box.
CFileDialog:: GetIFileSaveDialogCFileDialog::GetIFileSaveDialog CFileDialog[ファイルの 保存] ダイアログボックスとして使用されるの内部 COM オブジェクトを取得します。Retrieves the internal COM object for a CFileDialog that is used as a Save file dialog box.
CFileDialog:: GetNextPathNameCFileDialog::GetNextPathName 次に選択されたファイルの完全パスを返します。Returns the full path of the next selected file.
CFileDialog:: GetOFNCFileDialog::GetOFN OPENFILENAMEオブジェクトの構造体を取得し CFileDialog ます。Retrieves the OPENFILENAME structure of the CFileDialog object.
CFileDialog:: GetPathNameCFileDialog::GetPathName 選択されたファイルの完全パスを返します。Returns the full path of the selected file.
CFileDialog:: GetReadOnlyPrefCFileDialog::GetReadOnlyPref 選択されたファイルの読み取り専用の状態を返します。Returns the read-only status of the selected file.
CFileDialog:: GetResultCFileDialog::GetResult ユーザーがダイアログで行った選択肢を取得します。Gets the choice that the user made in the dialog.
CFileDialog:: GetResultsCFileDialog::GetResults 複数選択を可能にするダイアログのユーザーの選択肢を取得します。Gets the user's choices in a dialog that allows multiple selection.
CFileDialog:: GetSelectedControlItemCFileDialog::GetSelectedControlItem ダイアログの指定されたコンテナーコントロールから特定の項目を取得します。Gets a particular item from specified container controls in the dialog.
CFileDialog:: GetStartPositionCFileDialog::GetStartPosition ファイル名リストの最初の要素の位置を返します。Returns the position of the first element of the file name list.
CFileDialog:: HideControlCFileDialog::HideControl エクスプローラー 形式で [共通 ] ダイアログボックスで指定したコントロールを非表示 にしますHides the specified control in an Explorer-style Open or Save As common dialog box.
CFileDialog:: IsPickFoldersModeCFileDialog::IsPickFoldersMode フォルダーピッカーモードの現在のダイアログがあるかどうかを判断します。Determines if the current dialog in folder picker mode.
CFileDialog:: MakeProminentCFileDialog::MakeProminent コントロールをダイアログに配置して、追加された他のコントロールと比較して表示します。Places a control in the dialog so that it stands out compared to other added controls.
CFileDialog:: RemoveControlItemCFileDialog::RemoveControlItem ダイアログのコンテナーコントロールから項目を削除します。Removes an item from a container control in the dialog.
CFileDialog:: SetCheckButtonStateCFileDialog::SetCheckButtonState ダイアログのチェックボタン (チェックボックス) の現在の状態を設定します。Sets the current state of a check button (check box) in the dialog.
CFileDialog:: SetControlItemStateCFileDialog::SetControlItemState ダイアログで見つかったコンテナーコントロールの項目の現在の状態を設定します。Sets the current state of an item in a container control found in the dialog.
CFileDialog:: SetControlItemTextCFileDialog::SetControlItemText コントロール項目のテキストを設定します。Sets the text of a control item. たとえば、ラジオボタンやメニュー内の項目に付随するテキストなどです。For example, the text that accompanies a radio button or an item in a menu.
CFileDialog:: SetControlLabelCFileDialog::SetControlLabel ボタンテキストやエディットボックスラベルなど、コントロールに関連付けられたテキストを設定します。Sets the text associated with a control, such as button text or an edit box label.
CFileDialog:: SetControlStateCFileDialog::SetControlState 指定されたコントロールの現在の可視性と有効な状態を設定します。Sets the current visibility and enabled states of a given control.
CFileDialog:: SetControlTextCFileDialog::SetControlText [エクスプローラー形式で 開く ] または [共通 として保存 ] ダイアログボックスで、指定したコントロールのテキストを設定します。Sets the text for the specified control in an Explorer-style Open or Save As common dialog box.
CFileDialog:: SetDefExtCFileDialog::SetDefExt エクスプローラースタイルの [開く ] または [共通 として保存 ] ダイアログボックスの既定のファイル名拡張子を設定します。Sets the default file name extension for an Explorer-style Open or Save As common dialog box.
CFileDialog:: SetEditBoxTextCFileDialog::SetEditBoxText エディットボックスコントロール内の現在のテキストを設定します。Sets the current text in an edit box control.
CFileDialog:: SetPropertiesCFileDialog::SetProperties 保存される項目に対して使用される既定値を定義するプロパティ ストアを提供します。Provides a property store that defines the default values to be used for the item being saved.
CFileDialog:: SetSelectedControlItemCFileDialog::SetSelectedControlItem ダイアログのオプションボタングループまたはコンボボックスで、特定の項目の選択された状態を設定します。Sets the selected state of a particular item in an option button group or a combo box found in the dialog.
CFileDialog:: SetTemplateCFileDialog::SetTemplate オブジェクトのダイアログボックステンプレートを設定し CFileDialog ます。Sets the dialog box template for the CFileDialog object.
CFileDialog:: StartVisualGroupCFileDialog::StartVisualGroup ダイアログでビジュアルグループを宣言します。Declares a visual group in the dialog. 後続の "add" メソッドを呼び出すと、その要素がこのグループに追加されます。Subsequent calls to any "add" method add those elements to this group.
CFileDialog:: UpdateOFNFromShellDialogCFileDialog::UpdateOFNFromShellDialog m_ofnファイルダイアログボックスの現在の状態と一致するように、メンバー変数に格納されているデータを更新します。Updates the data stored in the m_ofn member variable to match the current state of the file dialog box.

プロテクト メソッドProtected Methods

名前Name 説明Description
CFileDialog:: OnButtonClickedCFileDialog::OnButtonClicked ボタンがクリックされたときに呼び出されます。Called when the button is clicked.
CFileDialog:: OnCheckButtonToggledCFileDialog::OnCheckButtonToggled チェックボックスをオンまたはオフにしたときに呼び出されます。Called when the check box is checked/unchecked.
CFileDialog:: OnControlActivating アクティブ化していますCFileDialog::OnControlActivating コントロールがアクティブになっているときに呼び出されます。Called when the control is being active.
CFileDialog:: OnFileNameChangeCFileDialog::OnFileNameChange WM_NOTIFY CDN_SELCHANGE メッセージを処理します。Handles the WM_NOTIFY CDN_SELCHANGE message.
CFileDialog:: OnFileNameOKCFileDialog::OnFileNameOK ダイアログボックスに入力されたファイル名を検証します。Validates the file name entered in the dialog box.
CFileDialog:: OnFolderChangeCFileDialog::OnFolderChange WM_NOTIFY CDN_FOLDERCHANGE メッセージを処理します。Handles the WM_NOTIFY CDN_FOLDERCHANGE message.
CFileDialog:: OnInitDoneCFileDialog::OnInitDone WM_NOTIFY CDN_INITDONE メッセージを処理します。Handles the WM_NOTIFY CDN_INITDONE message.
CFileDialog:: OnItemSelectedCFileDialog::OnItemSelected コンテナー項目が選択されているときに呼び出されます。Called when the container item is being selected.
CFileDialog:: OnLBSelChangedNotifyCFileDialog::OnLBSelChangedNotify ファイルの選択が変更されたときにカスタムアクションを実行できるようにします。Allows you to perform custom actions when the file selection changes.
CFileDialog:: On/の違反CFileDialog::OnShareViolation 共有違反を処理します。Handles share violations.
CFileDialog:: OnTypeChangeCFileDialog::OnTypeChange WM_NOTIFY CDN_TYPECHANGE メッセージを処理します。Handles the WM_NOTIFY CDN_TYPECHANGE message.

パブリック データ メンバーPublic Data Members

名前Name 説明Description
CFileDialog:: m_ofnCFileDialog::m_ofn Windows の OPENFILENAME 構造体。The Windows OPENFILENAME structure. [基本ファイル] ダイアログボックスのパラメーターへのアクセスを提供します。Provides access to basic file dialog box parameters.

解説Remarks

一般的なファイルのダイアログボックスを使用すると、ファイルの選択ダイアログボックスを実装できます。たとえば、[ ファイルを開く ] や [ 名前を付けて保存] など、Windows 標準と一貫性があります。Common file dialog boxes let you implement file-selection dialog boxes, for example, Open File and Save As, in a manner that is consistent with Windows standards.

提供されているコンストラクターと同様にを使用することも CFileDialog 、独自のダイアログボックスクラスをから派生させ、 CFileDialog 必要に応じてコンストラクターを記述することもできます。You can use CFileDialog as is with the constructor provided, or you can derive your own dialog box class from CFileDialog and write a constructor to suit your needs. どちらの場合も、これらのダイアログボックスは CCommonDialog クラスから派生しているので、標準の MFC ダイアログボックスのように動作します。In either case, these dialog boxes will behave like standard MFC dialog boxes because they are derived from the CCommonDialog Class. CFileDialog は、Windows に含まれている COMMDLG.DLL ファイルに依存しています。CFileDialog relies on the COMMDLG.DLL file that is included in Windows.

Windows Vista 以降では、の外観と機能の両方が、 CFileDialog 以前のバージョンの windows と異なります。Both the appearance and the functionality of the CFileDialog with Windows Vista or later differ from the earlier versions of Windows. 既定では、 CFileDialog プログラムが Windows vista 以降でコンパイルされて実行される場合、コードの変更なしで新しい Windows Vista 以降のスタイルが自動的に使用されます。The default CFileDialog automatically uses the new Windows Vista or later style without code changes if a program is compiled and run under Windows Vista or later. コンストラクターで Bviのスタイル パラメーターを使用して、この自動更新を手動でオーバーライドします。Use the bVistaStyle parameter in the constructor to manually override this automatic update. 自動更新の例外は、カスタマイズされたダイアログボックスです。The exception to the automatic update is customized dialog boxes. 新しいスタイルに変換されることはありません。They will not be converted to the new style. コンストラクターの詳細については、「 cfiledialog:: cfiledialog」を参照してください。For more information about the constructor, see CFileDialog::CFileDialog.

注意

コントロール ID システムは、を使用するときに、Windows の以前のバージョンとは異なり CFileDialog ます。The control ID system differs in Windows Vista or later from earlier versions of Windows when you use a CFileDialog. CFileDialog以前のバージョンの Windows からプロジェクトを移植するには、コード内のコントロールへのすべての参照を更新する必要があります。You must update all references to CFileDialog controls in code before you can port your project from an earlier version of Windows.

一部 CFileDialog のメソッドは、Windows Vista 以降ではサポートされていません。Some CFileDialog methods are not supported under Windows Vista or later. メソッドがサポートされているかどうかについては、個々のメソッドのトピックを確認してください。Check the individual method topic for information about whether the method is supported. また、次の継承関数は、Windows Vista 以降ではサポートされていません。In addition, the following inherited functions are not supported under Windows Vista or later:

クラスの windows メッセージは、 CFileDialog 使用しているオペレーティングシステムによって異なります。The windows messages for the CFileDialog class vary based on what operating system you are using. たとえば、クラスの場合、Windows XP では、 cdialog:: OnCancelCdialog:: OnOK はサポートされません CFileDialogFor example, Windows XP does not support CDialog::OnCancel and CDialog::OnOK for the CFileDialog class. ただし、Windows Vista 以降のオペレーティングシステムではサポートされています。However, Windows Vista and later operating systems do support them. 生成されるさまざまなメッセージとその受信順序の詳細については、「 CFileDialog サンプル: ログイベントの順序」を参照してください。For more information about the different messages that are generated and the order in which they are received, see CFileDialog Sample: Logging Event Order.

オブジェクトを使用するには CFileDialog 、最初にコンストラクターを使用してオブジェクトを作成し CFileDialog ます。To use a CFileDialog object, first create the object by using the CFileDialog constructor. ダイアログボックスを構築した後、 CFileDialog:: m_ofn 構造体の任意の値を設定または変更して、ダイアログボックスコントロールの値または状態を初期化できます。After the dialog box has been constructed, you can set or modify any values in the CFileDialog::m_ofn structure to initialize the values or states of the dialog box controls. m_ofn構造体の型は OPENFILENAME です。The m_ofn structure is of type OPENFILENAME. 詳細については、Windows SDK の Openfilename 構造体を参照してください。For more information, see the OPENFILENAME structure in the Windows SDK.

ダイアログボックスコントロールを初期化した後、 CFileDialog::D oModal メソッドを呼び出してダイアログボックスを表示し、ユーザーがパスとファイル名を入力できるようにします。After you initialize the dialog box controls, call the CFileDialog::DoModal method to display the dialog box so that the user can type the path and file name. DoModal ユーザーが [OK] (IDOK) または [キャンセル] (IDCANCEL) ボタンをクリックしたかどうかを返します。DoModal returns whether the user clicked the OK (IDOK) or the Cancel (IDCANCEL) button. が IDOK を返す場合は、 DoModal パブリックメンバー関数のいずれかを使用し CFileDialog て、ユーザーによって格納されている情報を取得できます。If DoModal returns IDOK, you can use one of the CFileDialog public member functions to retrieve the information put in by the user.

注意

Windows Vista 以降では、 Ifiledialog:: SetFileTypes を複数回呼び出すと、エラーが発生します。Under Windows Vista or later, multiple calls to IFileDialog::SetFileTypes causes an error. の任意のインスタンスに対するの2回目の呼び出しでは、 SetFileTypes CFileDialog Windows Vista 以降で E_UNEXPECTED が返されます。The second call to SetFileTypes for any instance of a CFileDialog will return E_UNEXPECTED in Windows Vista or later. 一部 CFileDialog のメソッド関数は SetFileTypes を呼び出します。Some CFileDialog method functions call SetFileTypes. たとえば、の同じインスタンスに対してを呼び出すと、 CFileDialog::DoModal CFileDialog ASSERTが生成されます。For example, two calls to CFileDialog::DoModal for the same instance of a CFileDialog generates ASSERT.

CFileDialog には、共有違反、ファイル名の検証、およびリストボックスの変更通知のカスタム処理を行うことができる、保護されたメンバーがいくつか含まれています。CFileDialog includes several protected members that let you do custom handling of share violations, file name validation, and list-box change notification. これらのプロテクトメンバーは、既定の処理が自動的に実行されるため、ほとんどのアプリケーションで使用する必要がないコールバック関数です。These protected members are callback functions that most applications do not have to use because default handling is performed automatically. これらの関数のメッセージマップエントリは、標準の仮想関数であるため、必須ではありません。Message-map entries for these functions are not required because they are standard virtual functions.

Windows の Commdlgextendederror 関数を使用すると、ダイアログボックスの初期化中にエラーが発生したかどうかを確認し、エラーの詳細を調べることができます。You can use the Windows CommDlgExtendedError function to determine whether an error occurred during initialization of the dialog box and to learn more about the error.

オブジェクトの破棄 CFileDialog は自動的に処理されます。The destruction of CFileDialog objects is handled automatically. CDialog:: EndDialogを呼び出す必要はありません。You do not have to call CDialog::EndDialog.

ユーザーが複数のファイルを選択できるようにするには、を呼び出す前に OFN_ALLOWMULTISELECT フラグを設定し DoModal ます。To let the user select multiple files, set the OFN_ALLOWMULTISELECT flag before you call DoModal. 返された複数のファイル名の一覧に対応するには、独自のファイル名のバッファーを指定する必要があります。You must supply your own file name buffer to accommodate the returned list of multiple file names. これを行うには、を m_ofn.lpstrFile 構築した後、を呼び出す前に、割り当てたバッファーへのポインターでを置き換え CFileDialog DoModal ます。Do this by replacing m_ofn.lpstrFile with a pointer to a buffer you have allocated, after you construct the CFileDialog, but before you call DoModal.

さらに、が m_ofn.nMaxFile 指すバッファー内の文字数を使用してを設定する必要があり m_ofn.lpstrFile ます。Additionally, you must set m_ofn.nMaxFile by using the number of characters in the buffer pointed to by m_ofn.lpstrFile. 選択するファイルの最大数をに設定すると、 n 必要なバッファーサイズはに n * (_MAX_PATH + 1) + 1 なります。If you set the maximum number of files to be selected to n, the required buffer size is n * (_MAX_PATH + 1) + 1. バッファーに最初に返される項目は、ファイルが選択されたフォルダーへのパスです。The first item returned in the buffer is the path to the folder where the files were selected. Windows Vista またはそれ以降のスタイルのダイアログボックスでは、ディレクトリとファイル名の文字列は null で終了し、最後のファイル名の後に null 文字が追加されます。For Windows Vista or later-style dialog boxes, the directory and file name strings are null-terminated, with an extra null character after the last file name. この形式を使用すると、[エクスプローラースタイル] ダイアログボックスで、スペースを含む長いファイル名を返すことができます。This format enables the Explorer-style dialog boxes to return long file names that include spaces. 旧スタイルのダイアログボックスの場合、ディレクトリとファイル名の文字列はスペースで区切られ、関数はファイル名にスペースを含む短いファイル名を使用します。For old-style dialog boxes, the directory and file name strings are separated by spaces and the function uses short file names for file names with spaces.

次の例では、バッファーを使用して複数のファイル名を取得し、一覧表示する方法を示します。The following example demonstrates how to use a buffer to retrieve and list multiple file names.

#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 メソッドをオーバーライドする必要があります。To change the buffer size in response to the user selecting multiple file names, you must derive a new class from CFileDialog and override the CFileDialog::OnFileNameChange method.

から新しいクラスを派生させる場合は CFileDialog 、メッセージマップを使用して任意のメッセージを処理できます。If you derive a new class from CFileDialog, you can use a message map to handle any messages. 既定のメッセージ処理を拡張するには、からクラスを派生させ、 CFileDialog 新しいクラスにメッセージマップを追加して、新しいメッセージのメンバー関数を提供します。To extend the default message handling, derive a class from CFileDialog, add a message map to the new class, and provide member functions for the new messages. ダイアログボックスをカスタマイズするためのフック関数を指定する必要はありません。You do not have to provide a hook function to customize the dialog box.

ダイアログボックスをカスタマイズするには、からクラスを派生させ、 CFileDialog カスタムダイアログボックステンプレートを指定して、拡張コントロールからの通知メッセージを処理するメッセージマップを追加します。To customize the dialog box, derive a class from CFileDialog, provide a custom dialog box template, and add a message map to process the notification messages from the extended controls. 未処理のメッセージを基底クラスに渡します。Pass any unprocessed messages to the base class. フック関数をカスタマイズする必要はありません。You do not have to customize the hook function.

の Windows Vista またはそれ以降のスタイルを使用している場合は CFileDialog 、メッセージマップおよびダイアログボックステンプレートを使用できません。When you are using the Windows Vista or later style of the CFileDialog, you cannot use message maps and dialog box templates. 代わりに、同様の機能に COM インターフェイスを使用する必要があります。Instead, you must use the COM interfaces for similar functionality.

の使用方法の詳細につい CFileDialog ては、「 コモンダイアログクラス」を参照してください。For more information about how to use CFileDialog, see Common Dialog Classes.

継承階層Inheritance Hierarchy

CObjectCObject

CCmdTargetCCmdTarget

CWndCWnd

CDialogCDialog

CCommonDialogCCommonDialog

CFileDialog

要件Requirements

ヘッダー: afxdlgsHeader: afxdlgs.h

CFileDialog:: AddCheckButtonCFileDialog::AddCheckButton

ダイアログにチェックボタンを追加します。Adds a check button to the dialog.

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

パラメーターParameters

dwIDCtldwIDCtl
追加するチェックボタンの ID。The ID of the check button to add.

strLabelstrLabel
チェックボタンの名前。The check button name.

bCheckedbChecked
チェックボタンの現在の状態を示すブール値。A Boolean indicating the current state of the check button. オンになっている場合は TRUE。それ以外の場合は FALSETRUE if checked; FALSE otherwise

解説Remarks

CFileDialog:: AddComboBoxCFileDialog::AddComboBox

ダイアログにコンボボックスを追加します。Adds a combo box to the dialog.

HRESULT AddComboBox(DWORD dwIDCtl);

パラメーターParameters

dwIDCtldwIDCtl
追加するコンボボックスの ID。The ID of the combo box to add.

解説Remarks

CFileDialog:: AddControlItemCFileDialog::AddControlItem

ダイアログのコンテナーコントロールに項目を追加します。Adds an item to a container control in the dialog.

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

パラメーターParameters

dwIDCtldwIDCtl
項目を追加するコンテナーコントロールの ID。The ID of the container control to add the item to.

dwIDItemdwIDItem
項目の ID。The ID of the item.

strLabelstrLabel
項目のテキスト。Item's text.

解説Remarks

CFileDialog:: AddEditBoxCFileDialog::AddEditBox

ダイアログにエディットボックスを追加します。Adds an edit box to the dialog.

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

パラメーターParameters

dwIDCtldwIDCtl
追加するエディットボックスの ID。The ID of the edit box to add.

strTextstrText
エディットボックスの名前。The edit box name.

解説Remarks

CFileDialog:: AddMenuCFileDialog::AddMenu

メニューをダイアログに追加します。Adds a menu to the dialog.

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

パラメーターParameters

dwIDCtldwIDCtl
追加するメニューの ID。The ID of the menu to add.

strLabelstrLabel
メニュー名。The menu name.

解説Remarks

CFileDialog:: AddPlaceCFileDialog::AddPlace

ユーザーが項目を開いたり保存したりできる場所の一覧にフォルダーを追加します。Adds a folder to the list of places available for the user to open or save items.

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

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

パラメーターParameters

lpszFolderlpszFolder
ユーザーが使用できるようにするフォルダーへのパス。A path to the folder to be made available to the user. フォルダーのみを指定できます。This can only be a folder.

fdapfdap
リスト内のフォルダーの配置場所を指定します。Specifies where the folder is placed within the list.

psipsi
ユーザーが使用できるようにするフォルダーを表す IShellItem へのポインター。A pointer to an IShellItem that represents the folder to be made available to the user. フォルダーのみを指定できます。This can only be a folder.

解説Remarks

CFileDialog:: AddPushButton プッシュボタンCFileDialog::AddPushButton

ダイアログにボタンを追加します。Adds a button to the dialog.

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

パラメーターParameters

dwIDCtldwIDCtl
追加するボタンの ID。The ID of the button to add.

strLabelstrLabel
ボタン名。The button name.

解説Remarks

CFileDialog:: AddRadioButtonListCFileDialog::AddRadioButtonList

ダイアログにオプションボタン (ラジオボタンとも呼ばれます) グループを追加します。Adds an option button (also known as radio button) group to the dialog.

HRESULT AddRadioButtonList(DWORD dwIDCtl);

パラメーターParameters

dwIDCtldwIDCtl
追加するオプションボタングループの ID。The ID of the option button group to add.

解説Remarks

CFileDialog:: AddSeparatorCFileDialog::AddSeparator

ダイアログに区切り記号を追加します。Adds a separator to the dialog.

HRESULT AddSeparator(DWORD dwIDCtl);

パラメーターParameters

dwIDCtldwIDCtl
追加する区切り記号の ID。The ID of the separator add.

解説Remarks

CFileDialog:: AddTextCFileDialog::AddText

ダイアログにテキストを追加します。Adds text to the dialog.

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

パラメーターParameters

dwIDCtldwIDCtl
追加するテキストの ID。The ID of the text to add.

strTextstrText
テキスト名。The text name.

解説Remarks

CFileDialog:: ApplyOFNToShellDialogCFileDialog::ApplyOFNToShellDialog

データ構造に格納されている値に基づいて、 CFileDialog の現在の状態を更新し m_ofn ます。Updates the current state of the CFileDialog based on the values stored in the m_ofn data structure.

void ApplyOFNToShellDialog();

解説Remarks

Windows Vista より前のバージョンの Windows では、メンバーの Openfilename データ構造は、の状態と継続的に同期されていました CFileDialogIn versions of Windows before Windows Vista, the member OPENFILENAME data structure was continuously synchronized with the state of the CFileDialog. M_ofnメンバー変数に対する変更は、ダイアログボックスの状態にすぐに反映されました。Any changes to the m_ofn member variable were immediately reflected in the state of the dialog box. また、ダイアログボックスの状態を変更すると、すぐにメンバー変数が更新され m_ofn ます。Also, any changes to the state of the dialog box immediately update the m_ofn member variable.

Windows Vista 以降では、メンバー変数の値 m_ofn との状態は CFileDialog 同期されるとは限りません。In Windows Vista or later, the values in the m_ofn member variable and state of the CFileDialog are not guaranteed to be synchronized. この関数は、の状態を強制的に更新して、 CFileDialog 構造体に一致させ m_ofn ます。This function forces the state of the CFileDialog to be updated to match the m_ofn structure. Windows は、CFileDialog::D oModal時にこの関数を自動的に呼び出します。Windows calls this function automatically during CFileDialog::DoModal.

Windows Vista 以降でクラスを使用する方法の詳細につい CFileDialog ては、「 CFileDialog クラス」を参照してください。For more information about how to use the CFileDialog class under Windows Vista or later, see CFileDialog Class.

Example

CFileDialog:: UpdateOFNFromShellDialog」の例を参照してください。See the example for CFileDialog::UpdateOFNFromShellDialog.

CFileDialog:: CFileDialogCFileDialog::CFileDialog

標準の Windows ファイルダイアログボックスを構築するには、この関数を呼び出します。Call this function to construct a standard Windows file dialog box.

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);

パラメーターParameters

Boペン FiledialogbOpenFileDialog
から作成するダイアログボックスの種類を指定するパラメーター。[in] The parameter that specifies what type of dialog box to create. [ファイルを開く] ダイアログボックスを構築するには、TRUE に設定します。Set it to TRUE to construct a File Open dialog box. [ ファイル名を付けて保存 ] ダイアログボックスを作成するには、FALSE に設定します。Set it to FALSE to construct a File Save As dialog box.

lpszDefExtlpszDefExt
から既定のファイル名拡張子。[in] The default file name extension. ユーザーの [ファイル名] ボックスに既知の拡張機能 (ユーザーのコンピューターに関連付けられているもの) が含まれていない場合は、 Lpszdefext によって指定された拡張子が自動的にファイル名に追加されます。If the user does not include a known extension (one that has an association on the user’s computer) in the Filename box, the extension specified by lpszDefExt is automatically appended to the file name. このパラメーターが NULL の場合、拡張機能は追加されません。If this parameter is NULL, no extension is appended.

lpszFileNamelpszFileName
から[ファイル名] ボックスに表示される最初のファイル名。[in] The initial file name that appears in the Filename box. NULL の場合、初期ファイル名は表示されません。If NULL, no initial file name appears.

dwFlagsdwFlags
からダイアログボックスをカスタマイズするために使用できる1つ以上のフラグの組み合わせ。[in] A combination of one or more flags that you can use to customize the dialog box. これらのフラグの詳細については、Windows SDK の Openfilename 構造体を参照してください。For a description of these flags, see the OPENFILENAME structure in the Windows SDK. 構造体メンバーを変更する場合は m_ofn.Flags 、変更でビットごとの or 演算子を使用して、既定の動作をそのまま維持します。If you modify the m_ofn.Flags structure member, use a bitwise-OR operator in your changes to keep the default behavior intact.

lpszFilterlpszFilter
からファイルに適用できるフィルターを指定する一連の文字列のペア。[in] A series of string pairs that specify filters you can apply to the file. ファイルフィルターを指定すると、フィルター条件に一致するファイルのみが [ファイル] ボックスの一覧に表示されます。If you specify file filters, only files that match filter criteria will appear in the Files list. ファイルフィルターの使用方法の詳細については、「解説」を参照してください。See the Remarks section for more information about how to work with file filters.

pParentWndpParentWnd
からファイルダイアログボックスの親またはオーナーウィンドウへのポインター。[in] A pointer to the parent or owner window of the file dialog box.

dwSizedwSize
から構造体のサイズ OPENFILENAME[in] The size of the OPENFILENAME structure. この値は、オペレーティングシステムのバージョンによって異なります。This value depends on the operating system version. MFC では、このパラメーターを使用して、作成する適切な種類のダイアログボックスを決定しています。MFC used this parameter to determine the appropriate kind of dialog box to create. 既定のサイズは0です。これは、プログラムが実行されているオペレーティングシステムのバージョンに基づいて、使用する正しいダイアログボックスのサイズが MFC コードによって決定されることを意味します。The default size of 0 means that the MFC code will determine the correct dialog box size to use based on the operating system version on which the program is run.

BviているスタイルbVistaStyle
から メモ このパラメーターは Visual Studio 2008 以降で使用でき、Windows Vista 以降で実行している場合にのみ、新しいスタイルのダイアログが使用されます。[in] Note This parameter is available in Visual Studio 2008 and later and causes the new-style dialog to be used only if you are running in Windows Vista or later.

ファイルダイアログのスタイルを指定するパラメーター。The parameter that specifies the style of the file dialog. [新しい Vista スタイルファイルのダイアログを使用するには、TRUE に設定します。Set it to TRUE to use the new Vista style file dialogs. それ以外の場合は、古いスタイルのダイアログボックスが使用されます。Otherwise, the old style of dialog boxes will be used. Vista での実行の詳細については、「解説」を参照してください。See the Remarks section for more information about running under Vista.

解説Remarks

Boの 値に応じて、[ファイルを開く] ダイアログボックスまたは [ファイル名を付けて保存] ダイアログボックスが作成されます。Either a File Open or File Save As dialog box is constructed, depending on the value of bOpenFileDialog.

Lpszdefext を使用して既定の拡張機能を指定すると、ユーザーのコンピューターにファイルの関連付けが含まれている拡張機能が予測できない場合があるため、期待どおりの動作が得られない可能性があります。Specifying a default extension using lpszDefExt may not produce the behavior that you expect, because it is seldom predictable what extensions have file associations on the user’s computer. 既定の拡張機能の追加をより詳細に制御する必要がある場合は、から独自のクラスを派生させ、メソッドをオーバーライドして CFileDialog CFileDialog::OnFileNameOK 独自の拡張処理を実行できます。If you need more control over the appending of a default extension, you can derive your own class from CFileDialog, and override the CFileDialog::OnFileNameOK method to perform your own extension handling.

ユーザーが複数のファイルを選択できるようにするには、 DoModalを呼び出す前に OFN_ALLOWMULTISELECT フラグを設定します。To enable the user to select multiple files, set the OFN_ALLOWMULTISELECT flag before you call DoModal. 返された複数のファイル名のリストを格納するには、独自のファイル名のバッファーを指定する必要があります。You must supply your own file name buffer to store the returned list of multiple file names. これを行うには、を m_ofn.lpstrFile 呼び出す前に、ユーザーが割り当てたバッファーへのポインターでを置き換え DoModal ます。Do this by replacing m_ofn.lpstrFile with a pointer to a buffer you have allocated, after you construct the CFileDialog, but before you call DoModal. さらに、は、が指すバッファー内の文字数でを設定する必要があり m_ofn.nMaxFile m_ofn.lpstrFile ます。Additionally, you must set m_ofn.nMaxFile with the number of characters in the buffer pointed to by m_ofn.lpstrFile. 選択するファイルの最大数を n に設定した場合、必要なバッファーサイズは n * (_MAX_PATH + 1) + 1 になります。If you set the maximum number of files to be selected to n, the necessary buffer size is n*(_MAX_PATH + 1) + 1. 次に例を示します。For example:

#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 フラグを設定します。To enable the user to resize an Explorer-style dialog box by using either the mouse or keyboard, set the OFN_ENABLESIZING flag. このフラグの設定が必要なのは、フックプロシージャまたはカスタムテンプレートを指定した場合のみです。Setting this flag is necessary only if you provide a hook procedure or custom template. このフラグは、エクスプローラースタイルのダイアログボックスでのみ機能します。旧形式のダイアログボックスのサイズを変更することはできません。The flag works only with an Explorer-style dialog box; old-style dialog boxes cannot be resized.

Lpszfilter パラメーターは、ファイルをファイルリストに表示するために必要なファイル名の種類を決定するために使用されます。The lpszFilter parameter is used to determine the type of file name a file must have to be displayed in the file list. 文字列ペアの最初の文字列は、フィルターについて説明します。2番目の文字列は、使用するファイル名拡張子を示します。The first string in the string pair describes the filter; the second string indicates the file name extension to use. 区切り記号としてセミコロン ('; ' 文字) を使用して、複数の拡張機能を指定できます。Multiple extensions may be specified by using a semicolon (the ';' character) as the delimiter. 文字列は2つの ' | ' 文字で終わり、その後に NULL 文字が続きます。The string ends with two '|' characters, followed by a NULL character. このパラメーターには、 CString オブジェクトを使用することもできます。You can also use a CString object for this parameter.

たとえば、Microsoft Excel では、ユーザーは、拡張子が xlc (chart) または .xls (ワークシート) のファイルを開くことができます。For example, Microsoft Excel allows users to open files that have extensions .xlc (chart) or .xls (worksheet), among others. Excel のフィルターは次のように記述できます。The filter for Excel could be written as:

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 縦棒 (' | ') ではなく、null 文字 ' \ 0 ' を使用して文字列を区切る必要があります。However, if you plan to use this string to directly update the OPENFILENAME structure, you should delimit your strings with the null character, '\0', instead of the vertical bars ('|').

Bvistastyle パラメーターは、Windows Vista 以降で実行されている場合にのみ適用できます。The bVistaStyle parameter is applicable only when running under Windows Vista or later. 以前のバージョンの Windows では、このパラメーターは無視されます。Under earlier versions of Windows, this parameter is ignored. Bviて style が TRUE に設定されている場合、Visual Studio 2008 以降を使用してプログラムをコンパイルすると、[新しい Vista スタイル ファイル] ダイアログボックス が使用されます。If bVistaStyle is set to TRUE, when you compile a program with Visual Studio 2008 or later, the new Vista style File Dialog will be used. それ以外の場合は、前の MFC スタイル ファイルダイアログ が使用されます。Otherwise, the previous MFC style File Dialog will be used.

ダイアログテンプレートは、 Bviのスタイル に基づくダイアログではサポートされていませんDialog templates are not supported on dialogs based on bVistaStyle

Example

CFileDialog::D oModal」の例を参照してください。See the example for CFileDialog::DoModal.

CFileDialog: oModal:DCFileDialog::DoModal

Windows の [共通ファイル] ダイアログボックスを表示し、ユーザーがファイルとディレクトリを参照してファイル名を入力できるようにするには、この関数を呼び出します。Call this function to display the Windows common file dialog box and allow the user to browse files and directories and enter a filename.

virtual INT_PTR DoModal();

戻り値Return Value

IDOK または IDCANCEL。IDOK or IDCANCEL. IDCANCEL が返された場合は、Windows の Commdlgextendederror 関数を呼び出して、エラーが発生したかどうかを確認します。If IDCANCEL is returned, call the Windows CommDlgExtendedError function to determine whether an error occurred.

IDOK と IDCANCEL は、ユーザーが [OK] または [キャンセル] ボタンを選択したかどうかを示す定数です。IDOK and IDCANCEL are constants that indicate whether the user selected the OK or Cancel button.

解説Remarks

構造体のメンバーを設定することによって、さまざまなファイルダイアログボックスオプションを初期化する場合は m_ofn 、を呼び出す前に DoModal 、ダイアログオブジェクトが構築された後にこの操作を行う必要があります。If you want to initialize the various file dialog-box options by setting members of the m_ofn structure, you should do this before calling DoModal, but after the dialog object is constructed.

たとえば、ユーザーが複数のファイルを選択できるようにするには、 DoModal このトピックのコード例に示すように、を呼び出す前に OFN_ALLOWMULTISELECT フラグを設定します。For example, if you want to allow the user to select multiple files, set the OFN_ALLOWMULTISELECT flag before calling DoModal, as shown in the code example in this topic.

ユーザーがダイアログボックスの [OK] ボタンまたは [キャンセル] ボタンをクリックするか、ダイアログボックスのコントロールメニューから [閉じる] オプションを選択すると、アプリケーションにコントロールが返されます。When the user clicks the dialog box's OK or Cancel buttons, or selects the Close option from the dialog box's control menu, control is returned to your application. その後、他のメンバー関数を呼び出して、ダイアログボックスに入力した設定または情報を取得できます。You can then call other member functions to retrieve the settings or information the user inputs into the dialog box.

DoModal は、クラスからオーバーライドされる仮想関数です CDialogDoModal is a virtual function overridden from class CDialog.

Example

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);
   }
}

CFileDialog:: EnableOpenDropDownCFileDialog::EnableOpenDropDown

ダイアログの [開く] または [保存] ボタンのドロップダウンリストを有効にします。Enables a drop-down list on the Open or Save button in the dialog.

HRESULT EnableOpenDropDown(DWORD dwIDCtl);

パラメーターParameters

dwIDCtldwIDCtl
ドロップダウンリストの ID。The ID of the drop-down list.

解説Remarks

CFileDialog:: EndVisualGroupCFileDialog::EndVisualGroup

ダイアログのビジュアルグループへの要素の追加を停止します。Stops the addition of elements to a visual group in the dialog.

HRESULT EndVisualGroup();

戻り値Return Value

成功した場合は S_OK を返します。それ以外の場合は、エラー値。Returns S_OK if successful; an error value otherwise.

解説Remarks

CFileDialog:: GetCheckButtonStateCFileDialog::GetCheckButtonState

ダイアログのチェックボタン (チェックボックス) の現在の状態を取得します。Retrieves the current state of a check button (check box) in the dialog.

HRESULT GetCheckButtonState(
    DWORD dwIDCtl,
    BOOL& bChecked);

パラメーターParameters

dwIDCtldwIDCtl
チェックボックスの ID。The ID of the check box.

bCheckedbChecked
チェックボックスの状態。The state of the check box. TRUE はチェックされていることを示します。FALSE は unchecked を示します。TRUE indicates checked; FALSE indicates unchecked.

解説Remarks

CFileDialog:: GetControlItemStateCFileDialog::GetControlItemState

ダイアログで見つかったコンテナーコントロール内の項目の現在の状態を取得します。Retrieves the current state of an item in a container control found in the dialog.

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

パラメーターParameters

dwIDCtldwIDCtl
コンテナー コントロールの ID。The ID of the container control.

dwIDItemdwIDItem
項目の ID。The ID of the item.

dwStatedwState
コントロールの現在の状態を示す CDCONTROLSTATE 列挙子から、より多くの値の1つを受け取る変数への参照。A reference to a variable that receives one of more values from the CDCONTROLSTATE enumeration that indicates the current state of the control.

解説Remarks

CFileDialog:: GetControlStateCFileDialog::GetControlState

指定したコントロールの現在の可視性と有効な状態を取得します。Retrieves the current visibility and enabled states of a given control.

HRESULT GetControlState(
    DWORD dwIDCtl,
    CDCONTROLSTATEF& dwState);

パラメーターParameters

dwIDCtldwIDCtl
コントロールの ID。The ID of the control.

dwStatedwState
コントロールの現在の状態を示す CDCONTROLSTATE 列挙子から1つ以上の値を受け取る変数への参照。A reference to a variable that receives one or more values from the CDCONTROLSTATE enumeration that indicates the current state of the control.

解説Remarks

CFileDialog:: GetEditBoxTextCFileDialog::GetEditBoxText

エディットボックスコントロール内の現在のテキストを取得します。Retrieves the current text in an edit box control.

HRESULT GetEditBoxText(
    DWORD dwIDCtl,
    CString& strText);

パラメーターParameters

dwIDCtldwIDCtl
エディットボックスの ID。The ID of the edit box.

strTextstrText
テキスト値。The text value.

解説Remarks

CFileDialog:: GetFileExtCFileDialog::GetFileExt

この関数を呼び出して、ダイアログボックスに入力されたファイル名の拡張子を取得します。Call this function to retrieve the extension of the filename entered into the dialog box.

CString GetFileExt() const;

戻り値Return Value

ファイル名の拡張子。The extension of the filename.

解説Remarks

たとえば、入力したファイルの名前が DATA.TXT の場合、は GetFileExt "TXT" を返します。For example, if the name of the file entered is DATA.TXT, GetFileExt returns "TXT".

に OFN_ALLOWMULTISELECT フラグが設定されている場合 m_ofn.Flags 、この文字列には、null で終わる文字列のシーケンスが含まれます。最初の文字列は選択されたファイルグループのディレクトリパス、その後にユーザーが選択したすべてのファイルの名前が続きます。If m_ofn.Flags has the OFN_ALLOWMULTISELECT flag set, this string contains a sequence of null-terminated strings, with the first string being the directory path of the file group selected, followed by the names of all files selected by the user. ファイルのパス名を取得するには、 GetStartPosition および GetNextPathName メンバー関数を使用します。To retrieve file pathnames, use the GetStartPosition and GetNextPathName member functions.

CFileDialog:: GetFileNameCFileDialog::GetFileName

ダイアログボックスに入力したファイル名の名前を取得するには、この関数を呼び出します。Call this function to retrieve the name of the filename entered in the dialog box.

CString GetFileName() const;

戻り値Return Value

ファイルの名前です。The name of the file.

解説Remarks

ファイルの名前には、プレフィックスと拡張子の両方が含まれます。The name of the file includes both the prefix and the extension. たとえば、 GetFileName は "TEXT" を返します。C:\FILES\TEXT.DAT. ファイルの DATFor example, GetFileName will return "TEXT.DAT" for the file C:\FILES\TEXT.DAT.

m_ofn.Flagsにフラグが設定されている場合は OFN_ALLOWMULTISELECTGetStartPositionGetNextPathNameを呼び出して、ファイルのパス名を取得する必要があります。If m_ofn.Flags has the OFN_ALLOWMULTISELECT flag set, you should call GetStartPosition and GetNextPathName to retrieve a file pathname.

CFileDialog:: GetFileTitleCFileDialog::GetFileTitle

この関数を呼び出して、ダイアログボックスに入力されたファイルのタイトルを取得します。Call this function to retrieve the title of the file entered in the dialog box.

CString GetFileTitle() const;

戻り値Return Value

ファイルのタイトル。The title of the file.

解説Remarks

ファイルのタイトルには、パスまたは拡張子のないプレフィックスだけが含まれます。The title of the file includes only its prefix, without the path or the extension. たとえば、 GetFileTitle は、ファイル C:\FILES\TEXT.DAT. の "TEXT" を返します。For example, GetFileTitle will return "TEXT" for the file C:\FILES\TEXT.DAT.

に OFN_ALLOWMULTISELECT フラグが設定されている場合 m_ofn.Flags 、この文字列には、null で終わる文字列のシーケンスが含まれます。最初の文字列は選択されたファイルグループのディレクトリパス、その後にユーザーが選択したすべてのファイルの名前が続きます。If m_ofn.Flags has the OFN_ALLOWMULTISELECT flag set, this string contains a sequence of null-terminated strings, with the first string being the directory path of the file group selected, followed by the names of all files selected by the user. このため、 GetStartPosition および GetNextPathName メンバー関数を使用して、リスト内の次のファイル名を取得します。For this reason, use the GetStartPosition and GetNextPathName member functions to retrieve the next file name in the list.

Example

CFileDialog::D oModal」の例を参照してください。See the example for CFileDialog::DoModal.

CFileDialog:: GetFolderPathCFileDialog::GetFolderPath

このメンバー関数を呼び出して、エクスプローラー形式の [開く] または [共通として保存] ダイアログボックスの現在開いているフォルダーまたはディレクトリのパスを取得します。Call this member function to retrieve the path of the currently open folder or directory for an Explorer-style Open or Save As common dialog box.

CString GetFolderPath() const;

戻り値Return Value

現在開いているフォルダーまたはディレクトリを含む CString オブジェクト。A CString object containing the currently open folder or directory.

解説Remarks

ダイアログボックスは、OFN_EXPLORER スタイルを使用して作成されている必要があります。それ以外の場合、メソッドはアサーションで失敗します。The dialog box must have been created with the OFN_EXPLORER style; otherwise, the method will fail with an assertion.

このメソッドを呼び出すことができるのは、ダイアログボックスが表示されている間だけです。You can call this method only while the dialog box is being displayed. ダイアログボックスが閉じられると、この関数は機能しなくなり、メソッドはアサーションで失敗します。After the dialog box has been closed, this function will no longer work, and the method will fail with an assertion.

CFileDialog:: GetIFileDialogCustomizeCFileDialog::GetIFileDialogCustomize

指定された CFileDialogの内部 COM オブジェクトへのポインターを取得します。Retrieves a pointer to the internal COM object for a given CFileDialog.

IFileDialogCustomize* GetIFileDialogCustomize();

戻り値Return Value

の内部 COM オブジェクトへのポインター CFileDialogThe pointer to the internal COM object for the CFileDialog. このポインターを適切に解放する必要があります。It is your responsibility to release this pointer appropriately.

解説Remarks

この関数は、Windows Vista 以降の場合にのみ使用し、 Bviのスタイル が TRUE に設定されたオブジェクトを使用します。Use this function only under Windows Vista or later with an object that has bVistaStyle set to TRUE. この関数を使用すると、 Bviて style が FALSE の場合、リリースモードでは NULL が返され、デバッグモードではアサーションがスローされます。If you use this function when bVistaStyle is FALSE, it will return NULL in release mode and throw an assertion in debug mode.

インターフェイスの詳細については IFileDialogCustomize 、「 IFileDialogCustomize」を参照してください。For more information about the IFileDialogCustomize interface, see IFileDialogCustomize.

Example

この例では、内部 COM オブジェクトを取得します。This example retrieves the internal COM object. このコード例を実行するには、Windows Vista 以降でコンパイルする必要があります。To run this code example, you must compile it under Windows Vista or later.

// 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();
}

CFileDialog:: GetIFileOpenDialogCFileDialog::GetIFileOpenDialog

指定したの内部 COM オブジェクトへのポインターを取得 CFileDialog します。Retrieves a pointer to the internal COM object for a given CFileDialog.

IFileOpenDialog* GetIFileOpenDialog();

戻り値Return Value

の内部 COM オブジェクトへのポインター CFileDialogThe pointer to the internal COM object for the CFileDialog. このポインターを適切に解放する必要があります。It is your responsibility to release this pointer appropriately.

解説Remarks

この関数は、Windows Vista 以降の場合にのみ使用し、 Bviのスタイル が TRUE に設定されたオブジェクトを使用します。Use this function only under Windows Vista or later with an object that has bVistaStyle set to TRUE. CFileDialog開い ているダイアログボックスでない場合、または bviの style が FALSE に設定されている場合、この関数は NULL を返します。This function returns NULL if the CFileDialog is not an Open dialog box or if bVistaStyle is set to FALSE. この最後のケースでは、関数はリリースモードでは NULL のみを返します。デバッグモードでは、アサーションがスローされます。In this final case, the function only returns NULL in release mode - in debug mode it will throw an assertion.

インターフェイスの詳細については IFileOpenDialog 、「 Ifileopendialog」を参照してください。For more information about the IFileOpenDialog interface, see IFileOpenDialog.

Example

この例では、内部 COM オブジェクトを取得します。This example retrieves the internal COM object. このコードを実行するには、Windows Vista 以降でコンパイルする必要があります。To run this code, you must compile it under Windows Vista or later.

// 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();
}

CFileDialog:: GetIFileSaveDialogCFileDialog::GetIFileSaveDialog

指定したの内部 COM オブジェクトへのポインターを取得 CFileDialog します。Retrieves a pointer to the internal COM object for a given CFileDialog.

IFileSaveDialog* GetIFileSaveDialog();

戻り値Return Value

の内部 COM オブジェクトへのポインター CFileDialogThe pointer to the internal COM object for the CFileDialog. このポインターを適切に解放する必要があります。It is your responsibility to release this pointer appropriately.

解説Remarks

この関数は、Windows Vista 以降の場合にのみ使用し、 Bviのスタイル が TRUE に設定されたオブジェクトを使用します。Use this function only under Windows Vista or later with an object that has bVistaStyle set to TRUE. CFileDialogが [保存] ダイアログボックスでない場合、または bviの style が FALSE に設定されている場合、この関数は NULL を返します。This function will return NULL if the CFileDialog is not a Save dialog box or if bVistaStyle is set to FALSE. この最後のケースでは、関数はリリースモードでは NULL のみを返します。デバッグモードでは、アサーションがスローされます。In this final case, the function only returns NULL in release mode - in debug mode it will throw an assertion.

インターフェイスの詳細については IFileSaveDialog 、「 IFileSaveDialog」を参照してください。For more information about the IFileSaveDialog interface, see IFileSaveDialog.

Example

この例では、内部 COM オブジェクトを取得します。This example retrieves the internal COM object. このコード例を実行するには、Windows Vista 以降でコンパイルする必要があります。To run this code example, you must compile it under Windows Vista or later.

// 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();
}

CFileDialog:: GetNextPathNameCFileDialog::GetNextPathName

この関数を呼び出して、ダイアログボックスで選択したグループから次のファイル名を取得します。Call this function to retrieve the next filename from the group selected in the dialog box.

CString GetNextPathName(POSITION& pos) const;

パラメーターParameters

pospos
前の GetNextPathName 呼び出しまたは関数呼び出しによって返された位置の値への参照 GetStartPositionA reference to a POSITION value returned by a previous GetNextPathName or GetStartPosition function call. リストの末尾に到達した場合は NULL。NULL if the end of the list has been reached.

戻り値Return Value

ファイルの完全パス名を返します。The full path of the file.

解説Remarks

ファイル名のパスには、ファイルのタイトルにディレクトリパス全体を加えたものが含まれます。The path of the filename includes the file's title plus the entire directory path. たとえば、 GetNextPathName は "C:\FILES\TEXT." を返します。C:\FILES\TEXT.DAT. ファイルの DATFor example, GetNextPathName will return "C:\FILES\TEXT.DAT" for the file C:\FILES\TEXT.DAT. GetNextPathNameを呼び出して最初の位置を設定する場合は、前方反復ループでを使用でき GetStartPosition ます。You can use GetNextPathName in a forward iteration loop if you establish the initial position with a call to GetStartPosition.

選択範囲が1つのファイルのみで構成されている場合は、そのファイル名が返されます。If the selection consists of only one file, that file name will be returned.

CFileDialog:: GetOFNCFileDialog::GetOFN

関連付けられている OPENFILENAME 構造体を取得します。Retrieves the associated OPENFILENAME structure.

const OPENFILENAME& GetOFN() const;

OPENFILENAME& GetOFN();

戻り値Return Value

Openfilename構造体。An OPENFILENAME structure.

解説Remarks

この関数の2番目のバージョンを使用して、ファイルを構築した後、メンバー関数と共に表示する前に、 [ファイルを開く ] ダイアログボックスまたは [ ファイル名を付けて保存 ] ダイアログボックスの外観を初期化し DoModal ます。Use the second version of this function to initialize the appearance of a File Open or File Save As dialog box after it is constructed but before it is displayed with the DoModal member function. たとえば、 lpstrTitle のメンバーを、ダイアログボックスに表示させるキャプションに設定でき m_ofn ます。For example, you can set the lpstrTitle member of m_ofn to the caption you want the dialog box to have.

CFileDialog:: GetPathNameCFileDialog::GetPathName

この関数を呼び出して、ダイアログボックスに入力されたファイルの完全なパスを取得します。Call this function to retrieve the full path of the file entered in the dialog box.

CString GetPathName() const;

戻り値Return Value

ファイルの完全パス名を返します。The full path of the file.

解説Remarks

ファイル名のパスには、ファイルのタイトルにディレクトリパス全体を加えたものが含まれます。The path of the filename includes the file's title plus the entire directory path. たとえば、 GetPathName は "C:\FILES\TEXT." を返します。C:\FILES\TEXT.DAT. ファイルの DATFor example, GetPathName will return "C:\FILES\TEXT.DAT" for the file C:\FILES\TEXT.DAT.

に OFN_ALLOWMULTISELECT フラグが設定されている場合、この文字列には、null で表される文字列 m_ofn.Flags のシーケンスが含まれます。最初の文字列は選択されたファイルグループのディレクトリパス、その後にユーザーが選択したすべてのファイルの名前が続きます。If m_ofn.Flags has the OFN_ALLOWMULTISELECT flag set, this string contains a sequence of null-teminated strings, with the first string being the directory path of the file group selected, followed by the names of all files selected by the user. このため、 GetStartPosition および GetNextPathName メンバー関数を使用して、リスト内の次のファイル名を取得します。For this reason, use the GetStartPosition and GetNextPathName member functions to retrieve the next file name in the list.

Example

CFileDialog::D oModal」の例を参照してください。See the example for CFileDialog::DoModal.

CFileDialog:: GetReadOnlyPrefCFileDialog::GetReadOnlyPref

Windows の標準の [ファイルを開く] および [ファイル名を付けて保存] ダイアログボックスで [読み取り専用] チェックボックスがオンになっているかどうかを確認するには、この関数を呼び出します。Call this function to determine whether the Read Only check box has been selected in the Windows standard File Open and File Save As dialog boxes.

BOOL GetReadOnlyPref() const;

戻り値Return Value

ダイアログボックスの [読み取り専用] チェックボックスがオンになっている場合は0以外。それ以外の場合は0です。Non-zero if the Read Only check box in the dialog box is selected; otherwise 0.

解説Remarks

[読み取り専用] チェックボックスを非表示にするには、コンストラクターで OFN_HIDEREADONLY スタイルを設定し CFileDialog ます。You can hide the Read Only check box by setting the OFN_HIDEREADONLY style in the CFileDialog constructor.

注意

Windows Vista 以降のスタイル CFileDialog オブジェクトでは、この機能はサポートされていません。Windows Vista or later style CFileDialog objects do not support this function. Windows Vista 以降のスタイルでこの関数を使用しようとすると、 CFileDialog CNotSupportedExceptionがスローされます。Attempting to use this function on a Windows Vista or later style CFileDialog will throw CNotSupportedException.

CFileDialog:: GetResultCFileDialog::GetResult

ユーザーがダイアログで行った選択を取得します。Retrieves the choice that the user made in the dialog.

IShellItem* GetResult() throw();

戻り値Return Value

ユーザーの選択肢を表す IShellItem へのポインター。A pointer to an IShellItem that represents the user's choice.

解説Remarks

CFileDialog:: GetResultsCFileDialog::GetResults

ダイアログで複数の選択を許可するユーザーの選択肢を取得します。Retrieves the user's choices in a dialog that allows multiple selection.

IShellItemArray* GetResults() throw();

戻り値Return Value

ダイアログボックスで選択された項目にアクセスできる IShellItemArray へのポインター。A pointer to an IShellItemArray through which the items selected in the dialog can be accessed.

解説Remarks

CFileDialog:: GetSelectedControlItemCFileDialog::GetSelectedControlItem

ダイアログの指定されたコンテナーコントロールから特定の項目を取得します。Retrieves a particular item from the specified container control in the dialog.

HRESULT GetSelectedControlItem(
    DWORD dwIDCtl,
    DWORD& dwIDItem);

パラメーターParameters

dwIDCtldwIDCtl
コンテナー コントロールの ID。The ID of the container control.

dwIDItemdwIDItem
コントロールでユーザーが選択した項目の ID。The ID of the item that the user selected in the control.

解説Remarks

CFileDialog:: GetStartPositionCFileDialog::GetStartPosition

に OFN_ALLOWMULTISELECT フラグが設定されている場合、このメンバー関数を呼び出して、リスト内の最初のファイルパス名の位置を取得し m_ofn.Flags ます。Call this member function to retrieve the position of the first file pathname in the list, if m_ofn.Flags has the OFN_ALLOWMULTISELECT flag set.

POSITION GetStartPosition() const;

戻り値Return Value

反復処理に使用できる位置の値。リストが空の場合は NULL です。A POSITION value that can be used for iteration; NULL if the list is empty.

CFileDialog:: HideControlCFileDialog::HideControl

このメンバー関数を呼び出して、エクスプローラー形式の [共通] ダイアログボックスで指定したコントロールを非表示にします。Call this member function to hide the specified control in an Explorer-style Open or Save As common dialog box.

void HideControl(int nID);

パラメーターParameters

nIDnID
非表示にするコントロールの ID。The ID of the control to hide.

解説Remarks

ダイアログボックスは、OFN_EXPLORER スタイルを使用して作成されている必要があります。それ以外の場合、関数はアサーションで失敗します。The dialog box must have been created with the OFN_EXPLORER style; otherwise, the function will fail with an assertion.

CFileDialog:: IsPickFoldersModeCFileDialog::IsPickFoldersMode

現在のダイアログがフォルダー選択モードであるかどうかを判断します。Determines if the current dialog is in folder picker mode.

BOOL IsPickFoldersMode() const;

戻り値Return Value

ダイアログがフォルダーピッカーモードの場合は TRUE。それ以外の場合は FALSE。TRUE if the dialog is in folder picker mode; otherwise FALSE.

解説Remarks

CFileDialog:: m_ofnCFileDialog::m_ofn

m_ofn は型の構造体です OPENFILENAMEm_ofn is a structure of type OPENFILENAME. この構造体のデータは、の現在の状態を表し CFileDialog ます。The data in this structure represents the current state of the CFileDialog.

解説Remarks

この構造体を使用して、ファイルを構築した後、 DoModalメソッドを使用して表示する前に、 [ファイルを開く] ダイアログボックスまたは [ファイル名を付けて保存] ダイアログボックスの外観を初期化します。Use this structure to initialize the appearance of a File Open or File Save As dialog box after you construct it but before you display it with the DoModal method. たとえば、の Lpstrtitle メンバーを、 m_ofn ダイアログボックスに表示させるキャプションに設定できます。For example, you can set the lpstrTitle member of m_ofn to the caption you want the dialog box to have.

Windows Vista またはそれ以降のスタイルの CFileDialogm_ofn は、はダイアログボックスの状態と常に一致するとは限りません。With the Windows Vista or later style of CFileDialog, m_ofn is not guaranteed to always match the state of the dialog box. 以前のバージョンの Windows では、ダイアログボックスと同期されています。It is synchronized with the dialog box in earlier versions of Windows. Windows Vista 以降での構造と状態の同期の詳細については、「 CFileDialog:: ApplyOFNToShellDialog および Cfiledialog:: UpdateOFNFromShellDialog 」を参照してください m_ofn CFileDialogSee CFileDialog::ApplyOFNToShellDialog and CFileDialog::UpdateOFNFromShellDialog for more information about synchronizing the m_ofn structure and the CFileDialog state under Windows Vista or later.

Windows Vista 以降のスタイルファイルダイアログでは、の特定のメンバーとフラグがサポートされていません CFileDialogWindows Vista or later style file dialogs do not support certain members and flags of the CFileDialog. 結果として、これらの影響はありません。As a result, these will have no effect.

Windows Vista 以降でサポートされていないメンバーの一覧を次に示します。The following is a list of the members that are not supported by Windows Vista or later:

  • lpstrCustomFilter

  • lpstrInitialDir

  • lCustData

  • lpfnHook

  • lpTemplateName

次のフラグはサポートされていないため、Windows Vista またはそれ以降のスタイルを使用しても効果はありません CFileDialogThe following flags are not supported and therefore have no effect when you use the Windows Vista or later style of CFileDialog:

  • OFN_ENABLEHOOKOFN_ENABLEHOOK

  • OFN_ENABLEINCLUDENOTIFYOFN_ENABLEINCLUDENOTIFY

  • OFN_ENABLETEMPLATEOFN_ENABLETEMPLATE

  • OFN_ENABLETEMPLATEHANDLEOFN_ENABLETEMPLATEHANDLE

  • OFN_EXPLOREROFN_EXPLORER

  • OFN_EXTENSIONDIFFERENTOFN_EXTENSIONDIFFERENT

  • OFN_HIDEREADONLYOFN_HIDEREADONLY

  • OFN_LONGNAMES-Windows Vista 以降では常に有効OFN_LONGNAMES - effectively always on in Windows Vista or later

  • OFN_NOLONGNAMES-Windows Vista 以降では常に無効になります。OFN_NOLONGNAMES - effectively always off in Windows Vista or later

  • OFN_NONETWORKBUTTON-Windows Vista 以降では常に有効OFN_NONETWORKBUTTON - effectively always on in Windows Vista or later

  • OFN_READONLYOFN_READONLY

  • OFN_SHOWHELPOFN_SHOWHELP

この構造体の詳細については、Windows SDK の Openfilename 構造体を参照してください。For more information about this structure, see the OPENFILENAME structure in the Windows SDK.

CFileDialog:: MakeProminentCFileDialog::MakeProminent

コントロールをダイアログに配置し、他のコントロールと比較して表示します。Places a control in the dialog so that it stands out compared to other controls.

HRESULT MakeProminent(DWORD dwIDCtl);

パラメーターParameters

dwIDCtldwIDCtl
コントロールの ID。The ID of the control.

解説Remarks

CFileDialog:: OnButtonClickedCFileDialog::OnButtonClicked

ボタンがクリックされたときに呼び出されます。Called when the button is clicked.

virtual void OnButtonClicked(DWORD dwIDCtl);

パラメーターParameters

dwIDCtldwIDCtl
ボタンの ID。The ID of the button.

解説Remarks

CFileDialog:: OnCheckButtonToggledCFileDialog::OnCheckButtonToggled

チェックボックスをオンまたはオフにしたときに呼び出されます。Called when the check box is checked or unchecked.

virtual void OnCheckButtonToggled(
    DWORD dwIDCtl,
    BOOL bChecked);

パラメーターParameters

dwIDCtldwIDCtl
チェックボックスの ID。The ID of the check box.

bCheckedbChecked
Checked または unchecked。Checked or unchecked.

解説Remarks

CFileDialog:: OnControlActivating アクティブ化していますCFileDialog::OnControlActivating

コントロールがアクティブになると呼び出されます。Called when the control is activated.

virtual void OnControlActivating(DWORD dwIDCtl);

パラメーターParameters

dwIDCtldwIDCtl
コントロールの ID。The ID of the control.

解説Remarks

CFileDialog:: OnFileNameChangeCFileDialog::OnFileNameChange

WM_NOTIFY CDN_SELCHANGE メッセージを処理する場合は、このメソッドをオーバーライドします。Override this method if you want to handle the WM_NOTIFY CDN_SELCHANGE message.

virtual void OnFileNameChange();

解説Remarks

ユーザーが [ 開く ] または [ 名前を付けて保存 ] ダイアログボックスのファイルリストで新しいファイルまたはフォルダーを選択すると、システムによって CDN_SELCHANGE メッセージが送信されます。The system sends the CDN_SELCHANGE message when the user selects a new file or folder in the file list of the Open or Save As dialog box. このメッセージに応答してアクションを実行する場合は、このメソッドをオーバーライドします。Override this method if you want to perform any actions in response to this message.

このメッセージは、OFN_EXPLORER フラグがオンになっている状態でダイアログボックスが作成された場合にのみ、システムによって送信されます。The system sends this message only if the dialog box was created with the OFN_EXPLORER flag turned on. 通知の詳細については、「 CDN_SELCHANGE」を参照してください。For more information about the notification, see CDN_SELCHANGE. OFN_EXPLORER フラグの詳細については、 Openfilename 構造体を参照し、 [開く] および [名前を付けて保存] ダイアログボックスを参照してください。For information about the OFN_EXPLORER flag, see the OPENFILENAME structure and Open and Save As Dialog Boxes.

CFileDialog:: OnFileNameOKCFileDialog::OnFileNameOK

共通ファイルのダイアログボックスに入力されたファイル名のカスタム検証を提供する場合にのみ、この関数をオーバーライドします。Override this function only if you want to provide custom validation of filenames that are entered into a common file dialog box.

virtual BOOL OnFileNameOK();

戻り値Return Value

ファイル名が有効なファイル名でない場合は1です。それ以外の場合は0です。1 if the filename is not a valid filename; otherwise 0.

解説Remarks

この関数を使用すると、アプリケーション固有の理由によってファイル名を拒否できます。This function allows you to reject a filename for any application-specific reason. 通常、この関数を使用する必要はありません。これは、フレームワークによってファイル名の既定の検証が提供され、無効なファイル名が入力された場合にメッセージボックスが表示されるためです。Normally, you do not need to use this function because the framework provides default validation of filenames and displays a message box if an invalid filename is entered.

1が返された場合は、ユーザーが別のファイル名を入力するためのダイアログボックスが表示されたままになります。If 1 is returned, the dialog box will remain displayed for the user to enter another filename. 戻り値が0の場合、ダイアログプロシージャはダイアログを閉じます。The dialog procedure dismisses the dialog if the return is 0. 他の0以外の戻り値は現在予約されているため、使用しないでください。Other nonzero return values are currently reserved and should not be used.

CFileDialog:: OnFolderChangeCFileDialog::OnFolderChange

WM_NOTIFYCDN_FOLDERCHANGE メッセージを処理するには、この関数をオーバーライドします。Override this function to handle the WM_NOTIFYCDN_FOLDERCHANGE message.

virtual void OnFolderChange();

解説Remarks

[開く] または [名前を付けて保存] ダイアログボックスで新しいフォルダーが開かれると、通知メッセージが送信されます。The notification message is sent when a new folder is opened in the Open or Save As dialog box.

通知は、ダイアログボックスが OFN_EXPLORER スタイルで作成された場合にのみ送信されます。Notification is sent only if the dialog box was created with the OFN_EXPLORER style. 通知の詳細については、「 CDN_FOLDERCHANGE」を参照してください。For more information about the notification, see CDN_FOLDERCHANGE. OFN_EXPLORER スタイルの詳細については、 Openfilename 構造体を参照し、 [開く] および [名前を付けて保存] ダイアログボックスを参照してください。For information about the OFN_EXPLORER style, see the OPENFILENAME structure and Open and Save As Dialog Boxes.

CFileDialog:: OnInitDoneCFileDialog::OnInitDone

WM_NOTIFY CDN_INITDONE メッセージを処理するには、この関数をオーバーライドします。Override this function to handle the WM_NOTIFY CDN_INITDONE message.

virtual void OnInitDone();

解説Remarks

システムが [ 開く ] または [ 名前を付けて保存 ] ダイアログボックスでコントロールの配置を完了すると、この通知メッセージが送信され、子ダイアログボックスのコントロールの領域が確保されます。The system sends this notification message when the system has finished arranging controls in the Open or Save As dialog box to make room for the controls of the child dialog box.

このダイアログボックスが OFN_EXPLORER スタイルで作成された場合にのみ、システムはこのを送信します。The system sends this only if the dialog box was created with the OFN_EXPLORER style. 通知の詳細については、「 CDN_INITDONE」を参照してください。For more information about the notification, see CDN_INITDONE. OFN_EXPLORER スタイルの詳細については、 Openfilename 構造体を参照し、 [開く] および [名前を付けて保存] ダイアログボックスを参照してください。For information about the OFN_EXPLORER style, see the OPENFILENAME structure and Open and Save As Dialog Boxes.

注意

Windows Vista 以降のスタイルファイルダイアログでは、この機能はサポートされていません。Windows Vista or later style file dialogs do not support this function. Windows Vista 以降のスタイルファイルダイアログでこの関数を使用しようとすると、 CNotSupportedExceptionがスローされます。Attempting to use this function on a Windows Vista or later style file dialog will throw CNotSupportedException.

CFileDialog:: OnItemSelectedCFileDialog::OnItemSelected

コンテナー項目が選択されると呼び出されます。Called when the container item is selected.

virtual void OnItemSelected(
    DWORD dwIDCtl,
    DWORD dwIDItem);

パラメーターParameters

dwIDCtldwIDCtl
コンテナー コントロールの ID。The ID of the container control.

dwIDItemdwIDItem
項目の ID。The ID of the item.

解説Remarks

CFileDialog:: OnLBSelChangedNotifyCFileDialog::OnLBSelChangedNotify

この関数は、リストボックス内の現在の選択範囲が変更されるたびに呼び出されます。This function is called whenever the current selection in a list box is about to change.

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

パラメーターParameters

nIDBoxnIDBox
選択が発生したリストボックスまたはコンボボックスの ID。The ID of the list box or combo box in which the selection occurred.

iCurSeliCurSel
現在の選択範囲のインデックス。The index of the current selection.

nCodenCode
コントロール通知コード。The control notification code. このパラメーターには、次のいずれかの値を指定する必要があります。This parameter must have one of the following values:

  • CD_LBSELCHANGE は、単一選択リストボックスで選択された項目 であることを指定し ます。CD_LBSELCHANGE Specifies iCurSel is the selected item in a single-selection list box.

  • CD_LBSELSUB は、複数選択のリストボックスで iCurSel が選択されていないことを指定します。CD_LBSELSUB Specifies that iCurSel is no longer selected in a multiselection list box.

  • CD_LBSELADD は、複数選択のリストボックスで iCurSel を選択することを指定します。CD_LBSELADD Specifies that iCurSel is selected in a multiselection list box.

  • CD_LBSELNOITEMS は、複数選択のリストボックスには存在しないことを指定します。CD_LBSELNOITEMS Specifies that no selection exists in a multiselection list box.

解説Remarks

この関数をオーバーライドすると、リストボックスで選択した変更のカスタム処理を行うことができます。Override this function to provide custom handling of selection changes in the list box. たとえば、この関数を使用すると、ユーザーが選択した各ファイルのアクセス権または最終更新日を表示できます。For example, you can use this function to display the access rights or date-last-modified of each file the user selects.

CFileDialog:: On/の違反CFileDialog::OnShareViolation

共有違反のカスタム処理を提供するには、この関数をオーバーライドします。Override this function to provide custom handling of share violations.

virtual UINT OnShareViolation(LPCTSTR lpszPathName);

パラメーターParameters

lpszPathNamelpszPathName
共有違反が発生したファイルのパス。The path of the file on which the share violation occurred.

戻り値Return Value

次のいずれかの値です。One of the following values:

  • OFN_SHAREFALLTHROUGH、ダイアログボックスからファイル名が返されます。OFN_SHAREFALLTHROUGH The filename is returned from the dialog box.

  • OFN_SHARENOWARN これ以上の操作は必要ありません。OFN_SHARENOWARN No further action needs to be taken.

  • このエラーについては、ユーザーが標準の警告メッセージを受信 OFN_SHAREWARN。OFN_SHAREWARN The user receives the standard warning message for this error.

解説Remarks

通常、この関数を使用する必要はありません。これは、フレームワークが共有違反の既定のチェックを提供し、共有違反が発生した場合にメッセージボックスを表示するためです。Normally, you do not need to use this function because the framework provides default checking of share violations and displays a message box if a share violation occurs.

共有違反チェックを無効にする場合は、ビットごとの OR 演算子を使用して、フラグ OFN_SHAREAWARE をと結合し m_ofn.Flags ます。If you want to disable share violation checking, use the bitwise OR operator to combine the flag OFN_SHAREAWARE with m_ofn.Flags.

CFileDialog:: OnTypeChangeCFileDialog::OnTypeChange

WM_NOTIFYCDN_TYPECHANGE メッセージを処理するには、この関数をオーバーライドします。Override this function to handle the WM_NOTIFYCDN_TYPECHANGE message.

virtual void OnTypeChange();

解説Remarks

[開く] または [名前を付けて保存] ダイアログボックスで、ユーザーがファイルの種類の一覧から新しいファイルの種類を選択すると、通知メッセージが送信されます。The notification message is sent when the user selects a new file type from the list of file types in the Open or Save As dialog box.

通知は、ダイアログボックスが OFN_EXPLORER スタイルで作成された場合にのみ送信されます。Notification is sent only if the dialog box was created with the OFN_EXPLORER style. 通知の詳細については、「 CDN_TYPECHANGE」を参照してください。For more information about the notification, see CDN_TYPECHANGE. OFN_EXPLORER スタイルの詳細については、 Openfilename 構造体を参照し、 [開く] および [名前を付けて保存] ダイアログボックスを参照してください。For information about the OFN_EXPLORER style, see the OPENFILENAME structure and Open and Save As Dialog Boxes.

CFileDialog:: RemoveControlItemCFileDialog::RemoveControlItem

ダイアログのコンテナーコントロールから項目を削除します。Removes an item from a container control in the dialog.

HRESULT RemoveControlItem(
    DWORD dwIDCtl,
    DWORD dwIDItem);

パラメーターParameters

dwIDCtldwIDCtl
項目を削除するコンテナーコントロールの ID。The ID of the container control to remove the item from.

dwIDItemdwIDItem
項目の ID。The ID of the item.

解説Remarks

CFileDialog:: SetCheckButtonStateCFileDialog::SetCheckButtonState

ダイアログのチェックボタン (チェックボックス) の現在の状態を設定します。Sets the current state of a check button (check box) in the dialog.

HRESULT SetCheckButtonState(
    DWORD dwIDCtl,
    BOOL bChecked);

パラメーターParameters

dwIDCtldwIDCtl
チェックボックスの ID。The ID of the check box.

bCheckedbChecked
チェックボックスの状態。The state of the check box. TRUE はチェックされていることを示します。FALSE は Unchecked を示します。TRUE indicates checked; FALSE indicates Unchecked.

解説Remarks

CFileDialog:: SetControlItemStateCFileDialog::SetControlItemState

ダイアログで見つかったコンテナーコントロールの項目の現在の状態を設定します。Sets the current state of an item in a container control found in the dialog.

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

パラメーターParameters

dwIDCtldwIDCtl
コンテナー コントロールの ID。The ID of the container control.

dwIDItemdwIDItem
項目の ID。The ID of the item.

dwStatedwState
コントロールの新しい状態を示す CDCONTROLSTATE 列挙子の1つ以上の値。One or more values from the CDCONTROLSTATE enumeration that indicate the new state of the control.

解説Remarks

CFileDialog:: SetControlItemTextCFileDialog::SetControlItemText

コントロール項目のテキストを設定します。Sets the text of a control item. たとえば、ラジオボタンやメニュー内の項目に付随するテキストなどです。For example, the text that accompanies a radio button or an item in a menu.

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

パラメーターParameters

dwIDCtldwIDCtl
コンテナー コントロールの ID。The ID of the container control.

dwIDItemdwIDItem
項目の ID。The ID of the item.

strLabelstrLabel
項目のテキスト。Item's text.

解説Remarks

CFileDialog:: SetControlLabelCFileDialog::SetControlLabel

ボタンテキストやエディットボックスラベルなど、コントロールに関連付けられたテキストを設定します。Sets the text associated with a control, such as button text or an edit box label.

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

パラメーターParameters

dwIDCtldwIDCtl
コントロールの ID。The ID of the control.

strLabelstrLabel
コントロール名。The control name.

解説Remarks

CFileDialog:: SetControlStateCFileDialog::SetControlState

指定されたコントロールの現在の可視性と有効な状態を設定します。Sets the current visibility and enabled states of a given control.

HRESULT SetControlState(
    DWORD dwIDCtl,
    CDCONTROLSTATEF dwState);

パラメーターParameters

dwIDCtldwIDCtl
コントロールの ID。The ID of the control.

dwStatedwState
コントロールの現在の状態を示す CDCONTROLSTATE 列挙子の1つ以上の値。One or more values from the CDCONTROLSTATE enumeration that indicate the current state of the control.

解説Remarks

CFileDialog:: SetControlTextCFileDialog::SetControlText

エクスプローラースタイルの [開く ] または [ 名前を付けて保存 ] ダイアログボックスで、指定したコントロールのテキストを設定するには、このメソッドを呼び出します。Call this method to set the text for the specified control in an Explorer-style Open or Save As dialog box.

void SetControlText(
    int nID,
    LPCSTR lpsz);

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

パラメーターParameters

nIDnID
からテキストを設定するコントロールの ID。[in] The ID of the control for which to set the text.

lpszlpsz
からコントロールに設定するテキストが格納されている文字列へのポインター。[in] A pointer to the string that contains the text to set for the control.

解説Remarks

この関数の両方のバージョンは、Unicode を使用するアプリケーションに対して有効です。Both versions of this function are valid for applications that use Unicode. ただし、ANSI を使用するアプリケーションでは、LPCSTR 型のバージョンのみが有効です。However, only the version with the LPCSTR type is valid for applications that use ANSI.

このメソッドを使用するには、OFN_EXPLORER スタイルを使用してダイアログボックスを作成する必要があります。To use this method, you must create the dialog box with the OFN_EXPLORER style. それ以外の場合、関数はアサーションで失敗します。Otherwise, the function will fail with an assertion.

CFileDialog:: SetDefExtCFileDialog::SetDefExt

エクスプローラースタイルの [開く] または [共通として保存] ダイアログボックスの既定のファイル名拡張子を設定するには、この関数を呼び出します。Call this function to set the default file name extension for an Explorer-style Open or Save As common dialog box.

void SetDefExt(LPCSTR lpsz);

パラメーターParameters

lpszlpsz
ダイアログボックスオブジェクトに使用する既定の拡張子を格納している文字列へのポインター。A pointer to a string containing the default extension to use for the dialog box object. この文字列にピリオド (.) を含めることはできません。This string must not contain a period (.).

解説Remarks

ダイアログボックスは、OFN_EXPLORER スタイルを使用して作成されている必要があります。それ以外の場合、関数はアサーションで失敗します。The dialog box must have been created with the OFN_EXPLORER style; otherwise, the function will fail with an assertion.

CFileDialog:: SetEditBoxTextCFileDialog::SetEditBoxText

エディットボックスコントロール内の現在のテキストを設定します。Sets the current text in an edit box control.

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

パラメーターParameters

dwIDCtldwIDCtl
エディットボックスの ID。The ID of the edit box.

strTextstrText
テキスト値。The text value.

解説Remarks

CFileDialog:: SetPropertiesCFileDialog::SetProperties

保存される項目に対して使用される既定値を定義するプロパティ ストアを提供します。Provides a property store that defines the default values to be used for the item being saved.

BOOL SetProperties(LPCWSTR lpszPropList);

パラメーターParameters

lpszPropListlpszPropList
";" で区切られた定義済みプロパティのリスト。A list of predefined properties separated by ";". フラグの一覧については、 Openfilenameflags セクションを参照してください。For a list of the flags, see the Flags section of OPENFILENAME.

解説Remarks

CFileDialog:: SetSelectedControlItemCFileDialog::SetSelectedControlItem

ダイアログのオプションボタングループまたはコンボボックスで、特定の項目の選択された状態を設定します。Sets the selected state of a particular item in an option button group or a combo box found in the dialog.

HRESULT SetSelectedControlItem(
    DWORD dwIDCtl,
    DWORD dwIDItem);

パラメーターParameters

dwIDCtldwIDCtl
コンテナー コントロールの ID。The ID of the container control.

dwIDItemdwIDItem
コントロールでユーザーが選択した項目の ID。The ID of the item that the user selected in the control.

解説Remarks

CFileDialog:: SetTemplateCFileDialog::SetTemplate

CFileDialogオブジェクトのダイアログボックステンプレートを設定します。Sets the dialog box template for the CFileDialog object.

void SetTemplate(
    UINT nWin3ID,
    UINT nWin4ID);

void SetTemplate(
    LPCTSTR lpWin3ID,
    LPCTSTR lpWin4ID);

パラメーターParameters

nWin3IDnWin3ID
からエクスプローラー以外のオブジェクトのテンプレートリソースの ID 番号を格納 CFileDialog します。[in] Contains the ID number of the template resource for the non-Explorer CFileDialog object. このテンプレートは、Windows NT 3.51 または OFN_EXPLORER スタイルが存在しない場合にのみ使用されます。This template is only used on Windows NT 3.51 or when the OFN_EXPLORER style is not present.

nWin4IDnWin4ID
からエクスプローラーオブジェクトのテンプレートリソースの ID 番号を格納 CFileDialog します。[in] Contains the ID number of the template resource for the Explorer CFileDialog object. このテンプレートは、Windows NT 4.0 以降のバージョン、Windows 95 以降のバージョン、または OFN_EXPLORER スタイルが存在する場合にのみ使用されます。This template is used only on Windows NT 4.0 and later versions, Windows 95 and later versions, or when the OFN_EXPLORER style is present.

lpWin3IDlpWin3ID
からエクスプローラー以外のオブジェクトのテンプレートリソースの名前を格納し CFileDialog ます。[in] Contains the name of the template resource for the non-Explorer CFileDialog object. このテンプレートは、Windows NT 3.51 または OFN_EXPLORER スタイルが存在しない場合にのみ使用されます。This template is only used on Windows NT 3.51 or when the OFN_EXPLORER style is not present.

lpWin4IDlpWin4ID
からエクスプローラーオブジェクトのテンプレートリソースの名前を格納し CFileDialog ます。[in] Contains the name of the template resource of the Explorer CFileDialog object. このテンプレートは、Windows NT 4.0 以降のバージョン、Windows 95 以降のバージョン、または OFN_EXPLORER スタイルが存在する場合にのみ使用されます。This template is used only on Windows NT 4.0 and later versions, Windows 95 and later versions, or when the OFN_EXPLORER style is present.

解説Remarks

システムは、指定されたテンプレートの1つのみを使用します。The system will use only one of the specified templates. システムは、OFN_EXPLORER スタイルの有無、およびアプリケーションが実行されているオペレーティングシステムに基づいて、どのテンプレートを使用するかを決定します。The system determines which template to use based on the presence of the OFN_EXPLORER style and the operating system that the application is running on. エクスプローラー以外のテンプレートとエクスプローラースタイルのテンプレートの両方を指定すると、windows NT 3.51、Windows NT 4.0 以降のバージョン、および Windows 95 以降のバージョンを簡単にサポートできます。By specifying both a non-Explorer and Explorer-style template, it is easy to support Windows NT 3.51, Windows NT 4.0 and later versions, and Windows 95 and later versions.

注意

Windows Vista またはそれ以降のスタイルファイルのダイアログボックスでは、この機能はサポートされていません。Windows Vista or later style file dialog boxes do not support this function. Windows Vista 以降のスタイルファイルダイアログボックスでこの関数を使用しようとすると、 CNotSupportedExceptionがスローされます。Attempting to use this function on a Windows Vista or later style file dialog box will throw CNotSupportedException. 別の方法として、カスタマイズされたダイアログを使用することもできます。An alternative is to use a customized dialog. カスタムの使用方法の詳細については CFileDialog 、「 IFileDialogCustomize」を参照してください。For more information about using a custom CFileDialog, see IFileDialogCustomize.

CFileDialog:: StartVisualGroupCFileDialog::StartVisualGroup

ダイアログでビジュアルグループを宣言します。Declares a visual group in the dialog. 後続の "add" メソッドを呼び出すと、その要素がこのグループに追加されます。Subsequent calls to any "add" method add those elements to this group.

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

パラメーターParameters

dwIDCtldwIDCtl
ビジュアルグループの ID。The ID of the visual group.

strLabelstrLabel
グループ名。The group name.

解説Remarks

CFileDialog:: UpdateOFNFromShellDialogCFileDialog::UpdateOFNFromShellDialog

m_ofn内部オブジェクトの現在の状態に基づいて、 CFileDialogのデータ構造を更新します。Updates the m_ofn data structure of the CFileDialog based on the current state of the internal object.

void UpdateOFNFromShellDialog();

解説Remarks

Windows Vista より前のバージョンの Windows では、メンバーの Openfilename データ構造は、の状態と継続的に同期されていました CFileDialogIn versions of Windows before Windows Vista, the member OPENFILENAME data structure was continuously synchronized with the state of the CFileDialog. M_ofnメンバー変数に対する変更は、ダイアログボックスの状態に直接影響します。Any changes to the m_ofn member variable directly affected the state of the dialog box. また、ダイアログの状態を変更すると、m_ofn メンバー変数が直ちに更新されます。Also, any changes to the state of the dialog immediately updated the m_ofn member variable.

Windows Vista 以降では、 m_ofn データ構造は自動的に更新されません。In Windows Vista or later, the m_ofn data structure is not automatically updated. メンバー変数のデータの精度を保証するには、 m_ofn UpdateOFNFromShellDialog データにアクセスする前に関数を呼び出す必要があります。To guarantee the accuracy of the data in the m_ofn member variable, you should call the UpdateOFNFromShellDialog function before accessing the data. この関数は、 Ifiledialog:: OnFileOKの処理中に Windows によって自動的に呼び出されます。Windows calls this function automatically during the processing of IFileDialog::OnFileOK.

Windows Vista 以降でクラスを使用する方法の詳細につい CFileDialog ては、「 CFileDialog クラス」を参照してください。For more information about how to use the CFileDialog class under Windows Vista or later, see CFileDialog Class.

Example

この例では、を CFileDialog 表示する前にを更新します。This example updates the CFileDialog before displaying it. メンバー変数を更新する前に、 m_ofn ダイアログボックスの現在の状態に同期する必要があります。Before updating the m_ofn member variable, we need to synchronize it to the current state of the dialog box.

// 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();

関連項目See also

CCommonDialog クラスCCommonDialog Class
階層図Hierarchy Chart