問題タブ [cfiledialog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
7009 参照

c++ - CFileDialog の初期ディレクトリが機能しない

コードに示すように、以下のように初期パスを設定しました。動いていない 。間違いがあれば訂正してください。

0 投票する
2 に答える
832 参照

c++ - .exe と .dll で矛盾する CFileDialog の現在のディレクトリ

通常、CFileDialog を使用してファイルを複数回開くと、現在のディレクトリが維持されます。つまり、前のダイアログが終了したディレクトリでダイアログが開くたびに (キャンセルされていない場合)。これは、異なる場所から CFileDialog の異なるインスタンスを使用する場合でも機能します。

また、プログラムを再起動した後も、以前のディレクトリは維持されます。

しかし、私のアプリでは、これは DLL 全体では機能しないようです。メインの .exe プログラムから呼び出された CFileDialogs には現在のディレクトリがあり、.dll からの CFileDialogs には別のディレクトリがあります。それらは互いに相互作用しませんが、それ以外は「通常」に動作します。

そのため、現在のディレクトリが 2 つ矛盾しているため、DLL から必要な場所に再度移動する必要があります。また、ディレクトリを変更するのを忘れて、あるディレクトリから .exe にデータをロードし、別のディレクトリから .dll に他のデータをロードすると、奇妙な結果が得られることがあります。

.exe と .dll から CFileDialog を開くときに同じ現在のディレクトリを持つ方法を知っていますか?

明確化: ダイアログを常に同じディレクトリから開始するのではなく、最後に使用したディレクトリを保持したいのですが、.exe と .dll で一貫して実行します。

私の.exeはVS2003で作成され、.dllはVS2010で作成されます。

(私の最初の推測では、DLL の CFileDialog コンストラクターでメイン ウィンドウ ハンドルを提供する必要があるということでしたが、これは役に立ちませんでした。私の次の推測では、GetCurrentDirectory() を介して手動で現在のディレクトリを取得し、それを開始場所として設定します。 dll の CFileDialog (そして、現在のディレクトリを終了した場所に設定します。)しかし、これは非常に見苦しく、WinXP から Win8 までのすべての OS で動作するかどうかはわかりません。 .)

0 投票する
0 に答える
203 参照

mfc - Windows XP SP3 の CFiledialog でコンボ ボックスの値を編集できない

FileDialogから派生したCustome CFiledialog。その中で、OnInitDialog()レイアウトを(アラビア語の場合)に更新し、WS_EX_LAYOUTRTLコールバックメソッドSetChildLayoutをすべての子アイテムを列挙するように設定し、レイアウトをに設定しましたWS_EX_LAYOUTRTL

ダイアログが表示されているときにこれらすべてを行った後、ファイル名のコンボ ボックスにアクセスできません。そのタイプはCComboBoxEx.

カスタム ダイアログのサイズを変更した後にのみ、コンボ ボックスを編集できます。

何か案が?

0 投票する
1 に答える
5719 参照

c++ - Cファイル書き込み機能

MFC CFile 書き込み関数について質問があります。
私は MFC アプリケーションについて学んでいて、この名前を付けて保存して書き込み機能にこだわっています。TestButton をクリックすると、[名前を付けて保存] ダイアログ ボックスが表示され、txt ファイルとして保存するように求められます。

質問は、2 つのバッファーを 1 つのバッファーにまとめて File書き込み、それを に書き込み、DataFile書き込むたびに新しい行を作成する方法です。
出力ファイルは保存されますが、新しい行に移動せずに 1 つのバッファー (TEST1) だけが 2 回保存されます。

0 投票する
1 に答える
1369 参照

c++ - MFC のメモ帳でテキストを開く

まさにタイトル通り。MFC のメモ帳でテキストを開くにはどうすればよいですか?

を使用して、CFileDialog次のように「名前を付けて保存」ダイアログボックスを開きました。

でパス名をm_strPathName取得した後、メモ帳に保存した txt ファイルを直接開く方法はありますか?

別のボタンOnShowDataがあり、これが内部のコードです。

ShellExecute(NULL, _T("open"), m_strPathName, NULL, NULL, SW_SHOW);

これを行うことができる他の方法はありますか??

問題が解決しました

0 投票する
2 に答える
2415 参照

visual-studio-2010 - CFileDialog クラスのコンストラクターを呼び出す方法

クラスのすべてのメンバー関数で使用される CFileDialog オブジェクトが必要です。だから私はクラスのヘッダーを次のように書きました:

クラスのコンストラクターを次の形式で実装します。

しかし、コンストラクターでは、エラーが発生します:

何が問題ですか?

-------------------------------------------------- ----------------------------------------------

問題が解決しました。このようにクラスを実装しました。

FilesWorkFlow.h

FilesWorkFlow.cpp

0 投票する
1 に答える
800 参照

c++ - プログラムで CFileDialog を 2 回目に使用すると、実行時エラー Debug Assertion failed が発生する

MFCで簡単なプログラムを開発しました。GDAL ライブラリを使用して geotiff ファイルの読み取りと書き込みを担当します。この目的のために、CFileDialognamedクラスから 2 つのクラスを派生さManageOpenGeoTiffFilesせ、ManageSaveGeoTiffFilesそれぞれに geotiff の読み取りと書き込みをサポートする 3 つの関数を用意しました。

これは、そのうちの 1 つのコンストラクターとデストラクターのヘッダーです。

これが私のコードでの使用方法です。

OpenプログラムでまたはSaveボタンを初めて 使用するときはすべて問題ありませんが、2回目の使用になるとエラーが発生します。

ここに画像の説明を入力
無視をクリックすると
ここに画像の説明を入力
、次の行でこのエラーが発生します。

各ダイアログcancelの 1 回目をクリックしても、2 回目のダイアログの使用でエラーが発生します。

dlgFile.cpp の 398 行目は次のとおりです。


編集されたセクション:

コメントの 1 つに回答し、他の人にも情報を提供する:

ブレークポイントを設定すると、アサーションが失敗したときに次の結果が表示されました。

アサーションが失敗しなかった最初の結果は次のとおりです。