
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
リソースのStringTableにあるIDR_MAINFRAMEの文字列を編集します。
1個目の\nと2個目の\nの間にhogeと入れておけば、新規ドキュメントのタイトルとして使われるはずです。
この回答への補足
ちなみにですが、タイトルバーが文字化けすることがあるようです。
しかし、ファイルは正しい書式のときはうまく読み込めています。
つまり、タイトルバーの更新部分でおかしなことになっているようなのです。
しかも、なぜかドラッグ&ドロップでファイルを読み込んだ際はファイルも正しく表示されるし、タイトルバーも正しく表示されます。
ちなみに、おかしくなるのは全角の文字がファイル名に入っているときです。
原因がわかる方いらっしゃいますでしょうか?
No.6
- 回答日時:
> この関数の ANSI 版では、名前は最大 MAX_PATH 文字に制限されています。
という記述があります。MFC内部でも、この制限を超えないものとしてコーディングされていると推測できます。ファイル名を格納する領域の文字数としてMAX_PATHが指定されていて、その文字数を超えないように文字列操作をしているために、ファイル名が途中で切れているのではないでしょうか。
この制限にかからないようにするには、
・OSとしてWindows95/98/Meを対象外とする
・ファイル名を取得する部分で文字数がMAX_PATHに制限されないように書き直す
・ファイルをオープンする時にCreateFileのUNICODE版(CreateFileW)を使用し、ファイル名の先頭に"\\?\"を付加する
といった処理が必要になります。
かなり大がかりな作業になると思いますよ。
この回答への補足
難ししいですね・・
いろいろありがとうございます。
最後に伺いたいのですが、タイトルバーのデフォルト名は「無題」だと思いますが、
「hoge」のような名前にしたい場合はどうすればいいでしょうか?
デフォルト時のみ変更したいのですが・・・
No.5
- 回答日時:
MFC内部ではWindowsAPIが使用されていますから、WindowsAPIと同様の制限を受けます。
ファイルオープンにはCreateFileが使用されるので、CreateFileの制限を確認してください。
CreateFile
http://msdn.microsoft.com/ja-jp/library/cc429198 …
特定の状況で、ある関数がどこから呼び出されたかを知るには、その関数内にブレークポイントを設定して、ブレークされたときにコールスタックを確認します。
この回答への補足
http://msdn.microsoft.com/ja-jp/library/cc429198 …を読みましたが、よくわかりませんでした・・・。
具体的にどう書けばいいのでしょうか?
OnOpenDocument(LPCTSTR lpszPathName)が呼ばれた時点でデバッグで見たところlpszPathNameは文字列が途中までしか入っていませんでした。
OnOpenDocumentが呼ばれる前に処理を加えるべきだと思うのですが、まったくわかりません・・・。
No.4
- 回答日時:
読み込んだデータを、別のクラスに保存しているということですね。
ファイルの読み込み時にドキュメントクラスとの接点はありませんか?
ドキュメントクラスからファイル読み込みの関数を呼び出しているとか、ドキュメントクラスのSerialize関数でファイルを読み込んでデータをクラスに設定しているとかであれば、その時点でファイルが正しく読み込めたか判定できるはずです。その判定結果を保存するためのメンバ変数をドキュメントクラスに用意して、SetTitleでその変数を参照すればうまくいくんじゃないでしょうか。
せっかくシリアライズ機能が用意されているのですから、本当はSerialize関数内でファイルを読み込んで、ファイルが不正な場合はメッセージを表示するなりした後で、AfxThrowUserException()などを呼び出して読み込み失敗を通知したほうがいいと思いますが。
この回答への補足
なるほど・・・ありがとうございます。
ちなみに、元の関数のOnOpenDocument(LPCTSTR lpszPathName)では、ある大きさ以上の文字数は途中までしか読み込めないのですが、なぜなのでしょうか?
ファイル名が途中できれてしまい、ファイルの読み込みができません。
MFCを起動した際、OnOpenDocumentはどこで呼びだされるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- C言語・C++・C# C#の2つの実行ファイルとアプリアイコンの変更について 1 2023/01/07 16:57
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- Windows 10 Windows10のメニューバーが白でこまってます!! 3 2023/08/27 03:13
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Excel(エクセル) Excelの複数人での参照について 2 2022/06/01 13:38
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
ハッシュの計算時間について
-
ファイルの結合
-
ShellExecuteEx→WaitForSingleO...
-
fopenできる上限の変更
-
OpenDialog1->FileNameについて
-
ツリービューを使って、エクス...
-
営業秘密の漏洩について
-
SGファイルって何ですか?
-
csvファイルを開かずに文字を検...
-
バッチで118項目のCSVを処理し...
-
ファイル名の先頭にアンダース...
-
phpで複数のファイルのインクル...
-
テキストファイルの最終行を削...
-
画像処理の仕方
-
RPGでファイル名(もしくはレコ...
-
マスタとファイルの違いって?
-
VBAにてEXCEL以外のファイル(テ...
-
ExcelVBA 定数宣言を外部ファイ...
-
ドラッグアンドドロップでファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
ファイル名の先頭にアンダース...
-
csvファイルを開かずに文字を検...
-
バッチで118項目のCSVを処理し...
-
CSVファイルへの保存の際、デー...
-
グローバル変数のよくない使い...
-
テキストファイルの最終行を削...
-
ドラッグアンドドロップでファ...
-
VB.NETによるプロセス間通信
-
VBAにてEXCEL以外のファイル(テ...
-
分割コンパイルの#defineについて
-
ファイルの結合
-
iniファイルに追記がしたいです。
-
VBに、Cのincludeのようなもの...
-
動画処理のライブラリについて
-
Cでのネットワークファイルの読...
-
ダイアログボックスで複数フォ...
-
C言語のfopenについて教えてく...
-
「VBScript」ADODB.Streamにお...
-
マウスポインタの変更
おすすめ情報