掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
スクロールバーのグレー化 (ID:71519)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>OnCreateで初期化する方法は >カスタムコントロールとして配置した際にコールされないと思うのですが >(逆にPreSubclassWindowはCreateで直接作ってもコールされる)、 >このようなケースではどのようにされているのでしょうか? 何かの勘違いですね。 DLGの場合はWM_INITDIALOG、一般ウインドウが作成される際には必ず WM_CREATEメッセージが送付されます。NCエリアのあるウインドウの 場合は、これに先行してWM_NCCREATEが呼ばれます。 これは、当該のウインドウがカスタムコントロールとしてDLGに 配置されている場合でも同じです。DLGの初期化関数は、リソース に記述してある「クラス名称」を指定してCreateWindow()する だけです。この動作はEdit等の既存クラスだろうと、カスタム コントロールだろうと同じです。また、CreateWindow() CreateWindowEx()以外に一般ウインドウを作成する手段は ありません。従ってウインドウが作成されたらWM_CREATEが 来るのは自明ですね(笑)。 MFCの一般ウインドウの場合、HWNDに対するスタイルを変更したい場合 や、クラススタイルを変更したい場合はPreCreateWindow()を オーバーライドするのが普通です。 PreSubclassWindow()を使用しなければならない場面に遭遇することは まずありません。自分は過去に1回だけありました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.