掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CFileDialogの派生クラスについて (ID:62083)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
CFileDialogの派生について質問です。 【背景】 CFileDialogを派生させ、自分で上書き確認のポップアップを表示させる処理をつくっています。その為、OnFileNameOK関数の中で、自前の上書き確認処理を入れていました。 【問題点】 ところがオープンしたファイルを再び指定して開きなおそうとした所、OnFileNameOK関数が2度CALLされてしまい、上書き確認のポップアップが2度表示されてしまいます。 【環境】 VisualStudio C++6.0(EnterpriseEdition) WindowsXP 【コード】 そこで下記のように単純なコードを作ってみました。 CFileDialog lFileDialog( FALSE ); CString lstrFileName; if( lFileDialog.DoModal() == IDOK ) { lstrFileName = lFileDialog.GetPathName(); if( m_File.m_pStream != NULL ) { m_File.Close(); } m_File.Open( lstrFileName, CFile::modeCreate| CFile::modeWrite | CFile::typeText ); } 上記のコードにおいて、一度ファイルダイアログよりファイルをオープンし、もう一度、上記コードを用いて、同一ファイルを指定した場合、上書き確認のポップアップが出て、OnFileNameOK関数が2度CALLされてしまいます。違うファイルを指定した場合はOnFileNameOK関数は一度しかCALLされません。また、最初のポップアップでOK、キャンセルしたとしても、もう一度OnFileNameOK関数が呼ばれてしまいます。どのようにすれば、ポップアップを一度だけ表示させる事が出来るでしょうか? どうかご回答いただけますようよろしくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.