スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

「ファイルを開く」/「ファイルを保存」のコモンダイアログ

  • MFC

    CFileDialog

  • CLR

    ???

  • WIN32(SDK)

    GetOpenFileName

Window Vista風のダイアログを表示するには、IFileDialogを使用する。

WIN32(SDK)

lpstrFile、lpstrFileTitleに指定するエリアをNULL初期化していないと、GetOpenFileName()がエラー(0x0002:CDERR_INITIALIZATION)となる場合があるようです。

#include <CommDlg.h>
  ・
  ・
	CHAR			fullpath[ MAX_PATH + 1 ];
	CHAR			name    [ MAX_PATH + 1 ];
	OPENFILENAME	ofn;
	BOOL			openfilename;

	ZeroMemory( fullpath, sizeof( fullpath ) );
	ZeroMemory( name, sizeof( name ) );
	ZeroMemory( &ofn, sizeof( ofn ) );

	ofn.lStructSize		= sizeof( ofn );		// 構造体のサイズ
	ofn.hwndOwner		= hWnd;			// 親ウィンドウのハンドル
	ofn.lpstrFilter		= "bin(*.bin)\0*.bin\0ROBOT.RAF\0ROBOT.RAF\0All files(*.*)\0*.*\0\0";
									// ファイルの種類
	ofn.lpstrFile		= fullpath;			// ファイル名(フルパス)を受け取るエリア
	ofn.nMaxFile		= sizeof( fullpath );	// lpstrFileに指定したエリアのサイズ
	ofn.lpstrFileTitle	= name;				// ファイル名を受け取るエリア
	ofn.nMaxFileTitle	= sizeof( name );		// lpstrFileTitleに指定したエリアのサイズ
	ofn.Flags			= OFN_FILEMUSTEXIST;	// フラグ
	ofn.lpstrTitle		= "ファイルを開く";	// ダイアログキャプション
	ofn.lpstrDefExt		= "bin";			// デフォルトのファイル拡張子

	openfilename		= GetOpenFileName( &ofn );
									// ファイルを開くダイアログを表示
	if ( openfilename )
	{
	}
	else
	{
		DWORD	commdlgextendederror;
		commdlgextendederror = CommDlgExtendedError();
		sprintf( name, "エラー" );
		sprintf( fullpath, "0x%08X", commdlgextendederror );
	}
	MessageBox( hWnd, fullpath, name, MB_OK );
  ・
  ・
スポンサーサイト

テーマ : ソフトウェア開発
ジャンル : コンピュータ

コメントの投稿

非公開コメント

最新記事
カテゴリ
メニュー
最新コメント
最新トラックバック
プロフィール

はしち

Author:はしち
FC2ブログへようこそ!

検索フォーム
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。