CObjectの派生クラスCHogeを作ったのですが
クラスウィザードにCHogeが表示されません。
クラスビューでCHogeを右クリックしても
仮想関数の追加が表示されません。
CHogeはメニューからクラスの新規作成で
基本クラスをGenericクラスにして作りました。
ほかのクラスについては正常に表示されます。
どうしたらクラスウィザードにCHogeが表示されるようになるでしょうか?
ご教授お願いします。
WinMe VC++6.0SP
VC++6.0 はほとんど使ったコトないけど、CObject の派生なら、
「Genericクラス」ではなく「MFCクラス」にしないとあかんのでは?
未確認ですが、たしかできなかったと思います。
クラス作成時に”自分で作業しなさい。的なメッセージが出てきたような気がします。
でもオーバーライドする関数ってコピーストラクタ、オペレーター=、シリアライズ
くらいしかないですよね。
面倒ですが私は自分で書いてます。
ファイルビューでまずプロジェクト内で仕様されているヘッダファイルかどうか
確認できていますか
ただ作っただけでは、プロジェクトで使用しているファイルとして
認識されていなければならないと思うのですが
.clw ファイルを直接編集するっていう手もあるかも。
[General Info]
ClassCount=N ←クラス数
Class1=XXXXX
:
ClassN=CHoge
[CLS:CHoge]
:
※もともとある部分を参考にしてください。
メンバ関数の追加を選んで「Virtual」チェックボックスをクリックして
関数を書けばよいのでは?
どうしてもというのならば、
以下のコードを追加して、.clwファイルを消して
クラスウィザード情報を作り直せばクラスウィザードに表示されます..が仮想関数の追加は出来
ません。
ヘッダファイルのクラス宣言内に
//{{AFX_MSG(CHoge)
//}}AFX_MSG
//{{AFX_VIRTUAL(CHoge)
//}}AFX_VIRTUAL
ソースファイル内に
//{{AFX_MSG_MAP(CHoge)
//}}AFX_MSG_MAP
wood様
もちろん該当ファイルはプロジェクトに追加してあります。
Tonny様
>でもオーバーライドする関数ってコピーストラクタ、オペレーター=、シリアライズ
>くらいしかないですよね。
>面倒ですが私は自分で書いてます。
たしかに言われるとおりです。
シリアライズをオーバーライドしようとして
「仮想関数の追加」がないのに気がつきました。
たいした手間でもないので、手作業で書くことにします。
皆様アドバイスありがとうございました。