VC++、MFCでSDIでアプリ作成中
現在、VC++、MFCでSDIでアプリ作成中です。
アイコン上にファイル(txtファイル)をドラッグ&ドロップしてメモ帳を起動したいです。
ただ、ドロップされたファイルはうまく読み込めるのですが、そのファイルを開く(表示)することができません。
ドロップされたファイルは、C○○View.cppで
int C○○View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: この位置に固有の作成用コードを追加してください
CStringArray argv;
if( IsDropOnIcon( &argv, TRUE ) ){
int i;
for( i = 0; i < argv.GetCount(); i++ ){
MessageBox( argv[ i ], "ドロップされたファイルは", MB_OK );
Read(argv[i]);
}
}
}
BOOL C○○View::IsDropOnIcon( CStringArray* argv, BOOL acceptFolder )
{
CString cmdlin = "";
CString resToken;
char* p;
int startnum = 0;
p = AfxGetApp()->m_lpCmdLine;
if( strlen( p ) == 0 || p[ 0 ] == '-')
return FALSE;
cmdlin = p;
resToken= cmdlin.Tokenize( "\"", startnum );
while( resToken != "" ){
if( resToken != " " && IsExist( resToken, acceptFolder ) )
argv->Add( resToken );
resToken= cmdlin.Tokenize( "\"", startnum );
};
return TRUE;
}
/* 引数で貰った文字列がファイルかどうかをチェック */
BOOL C○○View::IsExist( CString filepath, BOOL acceptFolder)
{
CFile fp;
if( fp.Open( filepath, CFile::modeRead ) ){
fp.Close();
return TRUE;
}
return FALSE;
}
のargv[i]で取得しています。
これが、Read(arg[i])でうまく読み込めません。
ちなみにRead(CString filename)は正しく動くことは確認済みです。
Read(arg[i])を入れる場所がOnCreateがいけないとは思うのですが、どのタイミングで
読み込めばいいかがわかりません。
どなたか教えて頂けないでしょうか?