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

『3週間完全マスターVisual C++ 6.0 』という本を参考に、Mouse という以下のプロジェクトを始めました。

Mouse のアプリケーションタイプ:
以下に示すターゲットのダイアログベースアプリケーション:
Win32

作成されるクラス:
アプリケーション: CMouseApp クラス ; Mouse.h , Mouse.cpp
ダイアログ: CMouseDlg クラス ; MouseDlg.h , MouseDlg.cpp

特徴:
+ システムメニューにバージョン情報を付加
+ 3D コントロール
+ 共有 DLL を使用 (MFC42.DLL)
+ ActiveX コントロールのサポート
+ リソースの言語:
日本語

発生している問題は、この中の CMouseDlg というクラスにメンバー変数を追加するためにワークスペースウィンドウの ClassView タブを選択し、Mouse クラスのツリーを展開したのですが、CAboutDlg, CMouseApp, グローバルという3つのクラスしか表示されず、肝心の CMouseDlg というクラスが全く表示されず、メンバー変数を追加したくてもできない、という状況です。ソースファイル内を探せば確かに CMouseDlg クラスは存在する(正確にはMouseDlg.hというヘッダーファイル内に)のですが、ワークスペースウィンドウ内に表示されない理由がわからず困っています。

もっと正確に言いますと、プロジェクトを開始した直後にワークスペースウィンドウで Mouse クラスのツリーを展開すると、ちゃんと CMouseDlg クラスは表示されるのですが、その後 ClassWizard を使って MouseDlg.cpp というインプリメンテーションファイル内にある、ある関数にコードを追加しようとすると、突然 CMouseDlg クラスがツリー表示から消えてしまいます。

どなたか理由のわかる方がいましたら御教授ください。説明が足りなければいくらでも補足します。宜しくお願いします。

A 回答 (3件)

私はこれはVC++のバクではないかと考えています。


どういう条件でなるのかわかりませんが、この症状が出る人と出ない人がいます。
で、色々やりましたが直りません^^;

もっとも簡単な対処方法は、ヘッダファイルを開いておいて、もしクラスが消えたらヘッダファイルをなんでも良いから編集(私は余白に改行を追加しています)して、CTRL-Sで保存します。
あら、するとまた復活します^^;

このClass Viewはあまりよい作りでなくて、みんながそうなのかわかりませんが、私のClass Viewではこの他にも template class を作るとインプリメンテーションに飛んでくれない(定義がないと怒る)などなど不具合いっぱいです。
ちなみにマイクロソフトの技術情報を調べましたが、、、、、No.1の方の言われる対処方法がかいてあるだけでした。

この間も同じ質問がありましたよ。(参考URL)

では。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=344064
    • good
    • 1
この回答へのお礼

情報有難う御座います。お礼が遅れて申し訳ありません。

やはりバグなのでしょうか。自分も、何回か試したうちの1回はちゃんと表示されたままになることがあったので、確率の問題なのかなと思っていました。とりあえず、教えていただいた方法で試したところ、表示されなくなったクラスを再び表示させることはできましたので安心しました。有難う御座いました。
また、調べが足りず、重複した質問をしましてすみませんでした。

お礼日時:2002/09/19 16:19

確かに良くなりますね。


先ずヘッダーファイルをファイルビューで探して開いてください。
ファイルの終わりの方に以下の部分があますよね。
};
//////////////////////////////これがもっと長く
これをこのように改行して保存してみてください。
};

//////////////////////////////
これでクラスビューに戻ると今度は見えるはずです。
    • good
    • 0
この回答へのお礼

情報有難う御座います。お礼が遅れて申し訳ありません。

試してみたところ、ちゃんと再表示されるようで助かりました。でも、いちいちこの作業をするのは面倒ですよね。バグなら何とかして欲しいものです。有難う御座いました。

お礼日時:2002/09/19 16:25

はっきりとした原因は分かりませんが、クラスがツリーから見えなくなった時は


私は下記のようにしています。

1.VCを終了する
2.プロジェクトのパスごとバックアップを取る
3.プロジェクトがおかれてるパスの中から
 <プロジェクト名>.ncb、<プロジェクト名>.clwを探す
4.<プロジェクト名>.ncb、<プロジェクト名>.clwを削除する
5.プロジェクトをVCで開く
6.ClassWizardを開く
7.なんか言われるので、プロジェクト内のソースを全て追加する

手元にVCが無いので曖昧ですが、たしかこんな感じでした。
もし余計に酷くなったりしたら...バックアップしたファイルを元に戻してください(^^;
    • good
    • 0
この回答へのお礼

情報有難う御座います。お礼が遅れて申し訳ありません。

違う方が教えてくれた方法が簡単だったのでそちらを試していますが、こちらの方法もやってみようと思います。

お礼日時:2002/09/19 16:13

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