CMFCEditBrowseCtrl クラス
CMFCEditBrowseCtrl
クラスは、必要に応じて参照ボタンを含む編集可能なテキスト ボックスである編集参照コントロールをサポートします。 ユーザーが参照ボタンをクリックすると、このコントロールはカスタム動作を実行するか、ファイル参照またはフォルダー参照を含む標準ダイアログ ボックスを表示します。
構文
class CMFCEditBrowseCtrl : public CEdit
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CMFCEditBrowseCtrl::CMFCEditBrowseCtrl |
既定のコンストラクターです。 |
CMFCEditBrowseCtrl::~CMFCEditBrowseCtrl |
デストラクターです。 |
パブリック メソッド
名前 | 説明 |
---|---|
CMFCEditBrowseCtrl::EnableBrowseButton | 参照ボタンを有効または無効 (非表示) にします。 |
CMFCEditBrowseCtrl::EnableFileBrowseButton | 参照ボタンを有効にし、編集参照コントロールを ファイル参照 モードにします。 |
CMFCEditBrowseCtrl::EnableFolderBrowseButton | 参照ボタンを有効にし、編集参照コントロールを folder 参照 モードにします。 |
CMFCEditBrowseCtrl::GetMode | 現在の参照モードを返します。 |
CMFCEditBrowseCtrl::OnAfterUpdate | 編集参照コントロールが参照アクションの結果で更新された後に、フレームワークによって呼び出されます。 |
CMFCEditBrowseCtrl::OnBrowse | ユーザーが参照ボタンをクリックした後、フレームワークによって呼び出されます。 |
CMFCEditBrowseCtrl::OnChangeLayout | 現在の編集参照コントロールを再描画します。 |
CMFCEditBrowseCtrl::OnDrawBrowseButton | 参照ボタンを描画するためにフレームワークによって呼び出されます。 |
CMFCEditBrowseCtrl::OnIllegalFileName | 編集コントロールに無効なファイル名が入力されたときにフレームワークによって呼び出されます。 |
CMFCEditBrowseCtrl::PreTranslateMessage |
ウィンドウ メッセージを TranslateMessage および DispatchMessage Windows 関数にディスパッチする前に変換します。 構文と詳細については、「 CWnd::P reTranslateMessage」を参照してください。 |
CMFCEditBrowseCtrl::SetBrowseButtonImage | 参照ボタンのカスタム イメージを設定します。 |
解説
編集参照コントロールを使用して、ファイル名またはフォルダー名を選択します。 必要に応じて、コントロールを使用して、ダイアログ ボックスを表示するなどのカスタム アクションを実行します。 参照ボタンを表示するか表示しないか、ボタンにカスタム ラベルまたはイメージを適用できます。
編集参照コントロールの ブロウズ モード は、参照ボタンを表示するかどうか、およびボタンがクリックされたときに発生するアクションを決定します。 詳細については、 GetMode メソッドを参照してください。
CMFCEditBrowseCtrl
クラスでは、次のモードがサポートされています。
カスタム モード
ユーザーが参照ボタンをクリックすると、カスタム アクションが実行されます。 たとえば、アプリケーション固有のダイアログ ボックスを表示できます。
ファイル モード
ユーザーが [参照] ボタンをクリックすると、標準のファイル選択ダイアログ ボックスが表示されます。
フォルダー モード
ユーザーが参照ボタンをクリックすると、標準のフォルダー選択ダイアログ ボックスが表示されます。
方法: 参照コントロールの編集を指定する
編集参照コントロールをアプリケーションに組み込むには、次の手順を実行します。
カスタム 参照モードを実装する場合は、
CMFCEditBrowseCtrl
クラスから独自のクラスを派生させ、 CMFCEditBrowseCtrl::OnBrowse メソッドをオーバーライドします。 オーバーライドされたメソッドで、カスタム参照アクションを実行し、編集参照コントロールを結果で更新します。CMFCEditBrowseCtrl
オブジェクトまたは派生編集参照コントロール オブジェクトを親ウィンドウ オブジェクトに埋め込みます。クラス ウィザードを使用してダイアログ ボックスを作成する場合は、編集コントロール (
CEdit
) をダイアログ ボックス フォームに追加します。 また、ヘッダー ファイル内のコントロールにアクセスする変数を追加します。 ヘッダー ファイルで、変数の型をCEdit
からCMFCEditBrowseCtrl
に変更します。 編集参照コントロールが自動的に作成されます。 クラス ウィザードを使用しない場合は、ヘッダー ファイルにCMFCEditBrowseCtrl
変数を追加し、そのCreate
メソッドを呼び出します。編集参照コントロールをダイアログ ボックスに追加する場合は、 ClassWizard ツールを使用してデータ交換を設定します。
EnableFolderBrowseButton、EnableFileBrowseButton、または EnableBrowseButton メソッドを呼び出して、参照モードを設定し、参照ボタンを表示します。 GetMode メソッドを呼び出して、現在の参照モードを取得します。
参照ボタンのカスタム イメージを提供するには、 SetBrowseButtonImage メソッドを呼び出すか、 OnDrawBrowseButton メソッドをオーバーライドします。
編集参照コントロールから参照ボタンを削除するには、bEnable パラメーターを FALSE に設定して EnableBrowseButton メソッドを呼び出します。
継承階層
例
次の例では、 CMFCEditBrowseCtrl
クラスで EnableFolderBrowseButton
と EnableFileBrowseButton
の 2 つのメソッドを使用する方法を示します。 この例は、 New Controls サンプルの一部です。
CMFCEditBrowseCtrl m_wndFolderEdit;
CMFCEditBrowseCtrl m_wndFileEdit;
// enable the browse button and put the control in file browse mode
m_wndFolderEdit.EnableFolderBrowseButton();
// enable the browse button and put the control in the folder browse mode
m_wndFileEdit.EnableFileBrowseButton();
要件
Header: afxeditbrowsectrl.h
CMFCEditBrowseCtrl::EnableBrowseButton
現在の編集参照コントロールの参照ボタンを表示または表示しません。
void EnableBrowseButton(
BOOL bEnable=TRUE,
LPCTSTR szLabel=_T("..."));
パラメーター
bEnable
参照ボタンを表示する場合は TRUE。参照ボタンを表示しない場合は FALSE。 既定値は TRUE です。
szLabel
参照ボタンに表示されるラベル。 既定値は " ..." です。
解説
bEnable パラメーターが TRUE の場合は、参照ボタンがクリックされたときに実行するカスタム アクションを実装します。 カスタム アクションを実装するには、 CMFCEditBrowseCtrl
クラスからクラスを派生させ、その OnBrowse メソッドをオーバーライドします。
bEnable パラメーターが TRUE の場合、コントロールの参照モードはBrowseMode_Default
。それ以外の場合、参照モードはBrowseMode_None
。 参照モードの詳細については、 GetMode メソッドを参照してください。
CMFCEditBrowseCtrl::EnableFileBrowseButton
現在の編集参照コントロールに参照ボタンを表示し、コントロールを file browse モードにします。
void EnableFileBrowseButton(
LPCTSTR lpszDefExt=NULL,
LPCTSTR lpszFilter=NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT);
パラメーター
lpszDefExt
[ファイルの選択] ダイアログ ボックスで使用する既定のファイル名拡張子を指定します。 既定値は NULL です。
lpszFilter
[ファイルの選択] ダイアログ ボックスで使用する既定のフィルター文字列を指定します。 既定値は NULL です。
dwFlags
ダイアログ ボックスのフラグ。 既定値は OFN_HIDEREADONLY と OFN_OVERWRITEPROMPT のビットごとの組み合わせ (OR) です。
解説
参照機能付きコントロールがファイル参照モードのときにユーザーが [参照] ボタンをクリックすると、コントロールに標準的なファイル選択のダイアログ ボックスが表示されます。
使用可能なフラグの完全な一覧については、 OPENFILENAME 構造体を参照してください。
CMFCEditBrowseCtrl::EnableFolderBrowseButton
現在の編集参照コントロールに参照ボタンを表示し、コントロールを folder 参照 モードにします。
void EnableFolderBrowseButton();
解説
[参照の編集] コントロールがフォルダー参照モードで、ユーザーが [参照] ボタンをクリックすると、コントロールに標準のフォルダー選択ダイアログ ボックスが表示されます。
CMFCEditBrowseCtrl::GetMode
現在の編集参照コントロールの参照モードを取得します。
CMFCEditBrowseCtrl::BrowseMode GetMode() const;
戻り値
エディット ブラウズ コントロールの現在のモードを指定する列挙値の 1 つ。 参照モードでは、フレームワークに参照ボタンが表示されるかどうかと、ユーザーがそのボタンをクリックしたときに発生するアクションが決まります。
次の表は、可能性のある戻り値の一覧です。
値 | 説明 |
---|---|
BrowseMode_Default |
カスタム モード。 プログラマ定義のアクションが実行されます。 |
BrowseMode_File |
ファイル モード。 標準のファイル ブラウザー ダイアログ ボックスが表示されます。 |
BrowseMode_Folder |
フォルダー モード。 標準のフォルダー ブラウザー ダイアログ ボックスが表示されます。 |
BrowseMode_None |
[参照] ボタンは表示されません。 |
解説
既定では、 CMFCEditBrowseCtrl
オブジェクトは BrowseMode_None
モードに初期化されます。 CMFCEditBrowseCtrl::EnableBrowseButton、CMFCEditBrowseCtrl::EnableFileBrowseButton、および CMFCEditBrowseCtrl::EnableFolderBrowseButton メソッドを使用して参照モードを変更します。
CMFCEditBrowseCtrl::OnAfterUpdate
編集参照コントロールが参照アクションの結果で更新された後に、フレームワークによって呼び出されます。
virtual void OnAfterUpdate();
解説
カスタム アクションを実装するには、派生クラスでこのメソッドをオーバーライドします。
CMFCEditBrowseCtrl::OnBrowse
ユーザーが編集参照コントロールの参照ボタンをクリックした後、フレームワークによって呼び出されます。
virtual void OnBrowse();
解説
ユーザーが編集参照コントロールの参照ボタンをクリックしたときにカスタム コードを実行するには、このメソッドを使用します。 CMFCEditBrowseCtrl
クラスから独自のクラスを派生させ、そのOnBrowse
メソッドをオーバーライドします。 そのメソッドで、カスタム参照アクションを実装し、必要に応じて編集参照コントロールのテキスト ボックスを更新します。 アプリケーションで、 EnableBrowseButton メソッドを使用して、edit browse コントロールを custom browse モードにします。
CMFCEditBrowseCtrl::OnChangeLayout
現在の編集参照コントロールを再描画します。
virtual void OnChangeLayout();
解説
編集参照コントロールの参照モードが変更されると、フレームワークはこのメソッドを呼び出します。 詳細については、「 CMFCEditBrowseCtrl::GetMode を参照してください。
CMFCEditBrowseCtrl::OnDrawBrowseButton
編集参照コントロールに参照ボタンを描画するために、フレームワークによって呼び出されます。
virtual void OnDrawBrowseButton(
CDC* pDC,
CRect rect,
BOOL bIsButtonPressed,
BOOL bIsButtonHot);
パラメーター
pDC
デバイス コンテキストへのポインター。
矩形
参照ボタンの外接する四角形。
bIsButtonPressed
ボタンが押された場合は TRUE。それ以外の場合は FALSE。
bIsButtonHot
ボタンが強調表示されている場合は TRUE。それ以外の場合は FALSE。
解説
参照ボタンの外観をカスタマイズするには、派生クラスでこの関数をオーバーライドします。
CMFCEditBrowseCtrl::SetBrowseButtonImage
[参照の編集] コントロールの [参照] ボタンにカスタム イメージを設定します。
void SetBrowseButtonImage(
HICON hIcon,
BOOL bAutoDestroy= TRUE);
void SetBrowseButtonImage(
HBITMAP hBitmap,
BOOL bAutoDestroy= TRUE);
void SetBrowseButtonImage(UINT uiBmpResId);
パラメーター
hIcon
アイコンのハンドル。
hBitmap
ビットマップのハンドル。
uiBmpResId
ビットマップのリソース ID。
bAutoDestroy
このメソッドが終了したときに指定したアイコンまたはビットマップを削除する場合は TRUE。それ以外の場合は FALSE。 既定値は TRUE です。
解説
このメソッドを使用して、参照ボタンにカスタム イメージを適用します。 既定では、編集参照コントロールが file browse または folder browse モードの場合、フレームワークは標準イメージを取得します。
CMFCEditBrowseCtrl::OnIllegalFileName
編集コントロールに無効なファイル名が入力されたときにフレームワークによって呼び出されます。
virtual BOOL OnIllegalFileName(CString& strFileName);
パラメーター
strFileName
無効なファイル名を指定します。
戻り値
このファイル名をファイル ダイアログに渡すことができない場合は FALSE を返す必要があります。 この場合、フォーカスは編集コントロールに戻り、ユーザーは編集を続行する必要があります。 既定の実装では、無効なファイル名についてユーザーに伝えるメッセージ ボックスが表示され、FALSE が返されます。 このメソッドをオーバーライドし、ファイル名を修正し、さらに処理するために TRUE を返すことができます。