アプリ版:「スタンプのみでお礼する」機能のリリースについて

VC++6.0でMDIプログラムを作成しているものです.

子ウィンドウをダブルクリックすると「ファイルを開く」のコモンダイアログを呼び出し,そこに選択した画像ファイルを表示させるプログラムを作ったのですが,ついでにタイトルバーに開いたファイル名を以下のようにして表示させました.

// Viewクラスにて

CFileDialog dlg(TRUE, "bmp", "*.bmp",               OFN_HIDEREADONLY|
        OFN_OVERWRITEPROMPT,
       "BITMAP(*.bmp)|
        *.bmp|JPEG(*.jpg)|
        *.jpg||");
if (dlg.DoModal() != IDOK) {
return;
}

GetParent()->SetWindowText(dlg.GetFileName());

そして,画像を表示したウィンドウとは別のウィンドウをアクティブにすると,タイトルバーに表示したファイル名がウィンドウを生成したときのタイトルに戻ってしまいます.

子ウィンドウが何個あっても,表示している画像のファイル名をタイトルバーに表示したいのですが,どうすればいいのですか?

A 回答 (1件)

まったくもって自身がないのですが、ひょっとして、


[アクティブから外れる]=[スコープから外れる]になっていることなんですかね(それでインスタンス作成時のタイトルになってしまうので)?試していただきたいことはCViewから派生、もしくはそれ自身を基底クラスとした自作派生クラス(本文の[// Viewクラスにて]クラス)に文字列型の変数orクラス[A]などを定義しそれにセットして(strcpyとかで)から派生もとのSetWindowText([A])メソッドを実行した後、UpdateData()を呼べばできるかと思います。申し訳ないのですが期待する結果が得らる保障はできませんのでご了承ください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます.お礼が遅れてしまい、申し訳ありません.試してみたいと思います.ありがとうございました.

お礼日時:2003/04/25 10:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!