CFileDialogのカスタマイズ(VC++) ファイル ダイアログ ボックスをカスタマイズするには、CFileDialog の派生クラスを作成し、カスタマイズの為にダイアログ テンプレートを用意し、コントロールを貼り付けて、ClassWizardで、メッセージハンドルを追加します。 プログラミングのメモとして、テキストファイルを選択しながら、ファイルの中身のプレビューをできるようなファイル ダイアログ ボックスを作ります。 1.テンプレートを作ります。リソースエディターで、IDD_DIALOG1というダイアログを追加します。「スタイル」は、下記のように設定します。 2.コントロールを追加します。まず、IDをstc32とする大きなスタティック テキストをダイアログの上部に貼り付けます。次はスタティック テキストの下に、プレビュー用のエディット ボックス(ID=IDC_EDIT_PREVIEW)とボタン(ID=IDC_BUTTON_PREVIEW)を追加します。 3.CFileDialogから派生クラスを作成します。例え、CFileDlgとします。リソースIDを指定する為に、下記のコードをCFileDlgに追加します。こうすることで、MFCクラスウィザード(MFC ClassWizard)が使えるようになります。 // ダイアログ データ 4.テンプレートを使うために、CFileDlgのコンストラクタ関数に下記のコードを実装します。 CFileDlg::CFileDlg(BOOL bOpenFileDialog, ...) :
CFileDialog(bOpenFileDialog, ...) 5.ボタン(ID=IDC_BUTTON_PREVIEW)のハンドルを実装します。CFileDialogクラスからファイルパスを取得して、ファイルを開いて、中身をエディット ボックス(ID=IDC_EDIT_PREVIEW)に表示させます。 void CFileDlg::OnPreview() 例のファイル ダイアログ ボックスは、下記のようです。 |