thisについて

[戻る]
あはは 2001/11/28(水) 13:45:40
すみませんはじめまして。MFCを使用しています。

自分で作成したクラスのメソッドで以下のようにカラーコモンダイアログのオブジェクトを宣言したのですが

    CColorDialog y_color_dlg(dotcolor,0,this);

次のようなエラーが出ます。

3 番目の引数を 'class Dot *const ' から 'class CWnd *' に変換できません。 (新しい機能 ; ヘルプを参照)

どうもthisがおかしいようです。引数を与えない場合や、thisの代わりにNULLを指定するとLNKエラーになってしまいます。

thisの代わりにどのような引数を用意したらよいのでしょうか?またその他の解決策をご存知でしたらお教えください。

あはは 2001/11/28(水) 14:19:30
ちなみに自分で作成したクラスは何も継承をしていないクラスです。

CFrameWndを継承しているクラスのメソッドOnLButtonDownでは上手くいったのですが・・・関係ないですかね

toru [E-Mail] [HomePage] 2001/11/28(水) 18:13:14
> CFrameWndを継承しているクラスのメソッドOnLButtonDownでは上手くいったのですが・・・関係ないですかね

たぶん関係あると思います。
CColorDialogの最後の引数はCWnd*です。
CFrameWndはCWndを継承しているので暗黙の型変換(で良かったっけ?)ができます。
で自作クラス(たぶんDotって名前だと思う)の方は型変換が出来ません。


> thisの代わりにNULLを指定するとLNKエラーになってしまいます。

NULLでいい気もしますが...どんなLNKエラーが出るんですか?


解決法としてはとりあえずどっかからCWnd*を取ってきて下さい。
MFC知識は全く無いんでこれが限界です(笑)

あはは 2001/11/29(木) 08:18:01
[[解決]]
お返事ありがとうございます。
NULLで大丈夫でした。LNKエラーはまた違う場所から生じたものでした。
すみません。

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