派生クラスってOnCreateに来ないの?

[戻る]
Puppy@松尾薫子 2002/04/10(水) 16:07:20
はじめまして。Puppyです。

VC6のMFCクラスを使って組んでます。
ダイアログベースです。

CStaticの派生クラスをつくり、初期設定したいのでOnCreate()をクラスウィザードで
追加しました。でも、そこにブレークを設定しても来ないんですぅ。(T-T
なぜなんでしょうか。

お願いします。m(..)m

不良PG 2002/04/10(水) 16:16:29
派生したCStaticのオブジェクトをCreateしてますか?

ダイアログベースということなので、メンバ変数として派生クラスを追加している場合には、
サブクラス化されることになるのでWM_CREATEではなく、CWnd::PreSubclassWindowあたりが
呼ばれると思います

Puppy 2002/04/10(水) 16:35:19
Puppyです。

不良PGさん お返事ありがとございます。m(..)mぺこり

えと、ダイアログにスタティックをはって
それをクラスウィザードで CStaticHase (派生クラス)に
わりあてました。(基本クラス CStaticからつくった)

CStaticHasei::OnPaint()にはちゃんと来るのに

CStaticHasei::OnCreate()には来ないんですぅ。
先輩が多分来るはずだというんですけど、
普通は来ないんでしょうか?
自分で調べろといわれて困ってます。
お願いします。m(..)mぺこり

不良PG 2002/04/10(水) 16:42:48
>えと、ダイアログにスタティックをはって
>それをクラスウィザードで CStaticHase (派生クラス)に
>わりあてました。(基本クラス CStaticからつくった)
この内容からするとダイアログに貼ったスタティックにサブクラスしたことになります。
よってCStaticHaseは、構築(Create)されていないためWM_CREATEは、飛んできません。
したがってOnCreateは、呼ばれません。

>CStaticHasei::OnPaint()にはちゃんと来るのに
サブクラス化している為当然呼ばれます。

サブクラスについて調べることをお勧めします

Puppy 2002/04/10(水) 17:01:02
Puppyです。

>よってCStaticHaseは、構築(Create)されていないためWM_CREATEは、飛んできませ
ん。
>したがってOnCreateは、呼ばれません。

「派生クラスはOnCreateは呼ばれない」 で正しいのでしょうか?
Createされないで動くんですか?う〜ん。。。

不良PG 2002/04/10(水) 17:07:59
>「派生クラスはOnCreateは呼ばれない」 で正しいのでしょうか?
違います、サブクラスするクラスのOnCreateが呼ばれないのです。

派生クラスでも、サブクラスされていなければ通常は構築時に呼ばれます

いもちぃ 2002/04/10(水) 17:17:51
横槍ですが・・・
「先輩」の言う「多分来る」ってのは、もともとあまり
教える気がないっぽいので、アテにせずに、白紙から
考えられることをお勧めします・・・。
別に「先輩」の悪口をゆってるんぢゃないですよ。

Puppy 2002/04/10(水) 17:20:12
[[解決]]
Puppyです。

不良PGさん お返事ありがとございます。

>違います、サブクラスするクラスのOnCreateが呼ばれないのです。

派生クラスはサブクラスじゃないんですね。
もっとよく勉強します。
むずかしいんで、やんなっちゃう。>会社とVCへ(笑い)

Puppy 2002/04/10(水) 17:28:13
あ、書いてる間に、またお返事が。。。

>別に「先輩」の悪口をゆってるんぢゃないですよ。

はーい。いもちぃさん はじめまして。お返事ありがとうございます。

先輩は、勘違いしたと、もうしておりましたですぅ。
>やんなっちゃう、もー、ブレークポイントに来なかったって言ったのにぃ。

今日はこのへんで、失礼します。
このページ、皆様ていねいに教えてくださるのでいいですねェ。

また、いろいろおしえてください。m(..)mぺこり

古いスレッドには追加発言できません。