『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 クラスがツリー表示から消えてしまいます。
どなたか理由のわかる方がいましたら御教授ください。説明が足りなければいくらでも補足します。宜しくお願いします。
No.2ベストアンサー
- 回答日時:
私はこれはVC++のバクではないかと考えています。
どういう条件でなるのかわかりませんが、この症状が出る人と出ない人がいます。
で、色々やりましたが直りません^^;
もっとも簡単な対処方法は、ヘッダファイルを開いておいて、もしクラスが消えたらヘッダファイルをなんでも良いから編集(私は余白に改行を追加しています)して、CTRL-Sで保存します。
あら、するとまた復活します^^;
このClass Viewはあまりよい作りでなくて、みんながそうなのかわかりませんが、私のClass Viewではこの他にも template class を作るとインプリメンテーションに飛んでくれない(定義がないと怒る)などなど不具合いっぱいです。
ちなみにマイクロソフトの技術情報を調べましたが、、、、、No.1の方の言われる対処方法がかいてあるだけでした。
この間も同じ質問がありましたよ。(参考URL)
では。
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=344064
情報有難う御座います。お礼が遅れて申し訳ありません。
やはりバグなのでしょうか。自分も、何回か試したうちの1回はちゃんと表示されたままになることがあったので、確率の問題なのかなと思っていました。とりあえず、教えていただいた方法で試したところ、表示されなくなったクラスを再び表示させることはできましたので安心しました。有難う御座いました。
また、調べが足りず、重複した質問をしましてすみませんでした。
No.3
- 回答日時:
確かに良くなりますね。
先ずヘッダーファイルをファイルビューで探して開いてください。
ファイルの終わりの方に以下の部分があますよね。
};
//////////////////////////////これがもっと長く
これをこのように改行して保存してみてください。
};
//////////////////////////////
これでクラスビューに戻ると今度は見えるはずです。
情報有難う御座います。お礼が遅れて申し訳ありません。
試してみたところ、ちゃんと再表示されるようで助かりました。でも、いちいちこの作業をするのは面倒ですよね。バグなら何とかして欲しいものです。有難う御座いました。
No.1
- 回答日時:
はっきりとした原因は分かりませんが、クラスがツリーから見えなくなった時は
私は下記のようにしています。
1.VCを終了する
2.プロジェクトのパスごとバックアップを取る
3.プロジェクトがおかれてるパスの中から
<プロジェクト名>.ncb、<プロジェクト名>.clwを探す
4.<プロジェクト名>.ncb、<プロジェクト名>.clwを削除する
5.プロジェクトをVCで開く
6.ClassWizardを開く
7.なんか言われるので、プロジェクト内のソースを全て追加する
手元にVCが無いので曖昧ですが、たしかこんな感じでした。
もし余計に酷くなったりしたら...バックアップしたファイルを元に戻してください(^^;
情報有難う御座います。お礼が遅れて申し訳ありません。
違う方が教えてくれた方法が簡単だったのでそちらを試していますが、こちらの方法もやってみようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- MySQL 【MySQL】本当に困っているので、助けてください。よろしくお願いします。 3 2023/06/03 14:24
- Excel(エクセル) Excelで全クラスのランキング表を作成したい 4 2022/05/24 15:28
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Excel(エクセル) Excel 本人の名前だけが入った表を印刷したい。 3 2023/05/10 11:38
- Excel(エクセル) 別シートに毎回異なるデータをコピーする 7 2022/06/24 09:02
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- Visual Basic(VBA) VBプロジェクトでのフォルダ構成について 1 2023/07/22 03:49
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FriendとPublicの違い。。。
-
ポインタのキャストについて
-
MFC VC++ 6.0 使用
-
継承したクラスを、継承元のク...
-
(UWSC) 「#32770」の意味わかり...
-
不要になった、普通の構造体の処理
-
C++ protectedにアクセス不可
-
メンバ変数のサイズの増加
-
ダイアログ表示時にチェックボ...
-
既定のコンストラクタがない?
-
IncludeではなくClassで宣言す...
-
ウィンドウの背景に画像を配置する
-
MFCアプリのコマンドラインでパ...
-
System.Net.HttpWebRequest、も...
-
クラスのアドレスを引数として...
-
[MFC] CWnd::MessageBoxの警告...
-
VS2005 C++ Expでダイアログの...
-
ボタンのオーナードローについて
-
C#で定数クラスをシングルトン...
-
エディットコントロールのイベ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
イベントにAddHandlerされてい...
-
クラスのアドレスを引数として...
-
ダイアログ表示時にチェックボ...
-
(UWSC) 「#32770」の意味わかり...
-
エディットコントロールのイベ...
-
エディットコントロールでEnter...
-
WindowsAPIのリストビューの...
-
CMainFrameクラスの使い方
-
DebugクラスとTraceクラスの違い
-
MessageBoxを継承したい
-
C++ protectedにアクセス不可
-
このコンパイルエラーの意味に...
-
MFCのドラッグ&ドロップについて
-
MFCアプリのコマンドラインでパ...
-
【ASP.NET】 独自で作成したク...
-
C#で通常のbuttonコントロール...
-
ダイアログクラスのコントロー...
-
派生クラスから基本クラスprote...
おすすめ情報