ウィンドウプロシージャのクラス化

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yu

ウィンドウプロシージャのクラス化

#1

投稿記事 by yu » 16年前

こんにちは

現在C++とWin32APIを勉強しています。
そこでWinAPIを使ってなにか軽いツールでも作ってみようかな~と思いましたが
ウィンドウプロシージャをどのようにしてクラス内のメンバ関数にすればいいのか分かりませんでした。
色々とサイト周って調べましたが、自分で書いてみるとうまく動きませんでした。

CreateWindow関数で毎回NULLが返されているようです。
メインウィンドウのウィンドウプロシージャを
MainWindow.cpp内に定義されている WndProc に変えてみたところ
NULLは返されずにうまく動きました。

ウィンドウプロシージャには関係無いですが、
今回初めてクラスを使ってプログラムを書いているので
どこかおかしなところがありましたら、教えていただけると幸いです。

どうかご教授お願いします m(_ _)m

OS:Windows Vista
VC++ 2008 EE

tk-xleader

Re:ウィンドウプロシージャのクラス化

#2

投稿記事 by tk-xleader » 16年前

CreateWindow関数を呼ぶと、WM_CREATEメッセージの前に、プロシージャに幾つかメッセージが送られてきます。
そして、そのメッセージは、DefWndProc関数に処理させる必要があります。ですので、globalProcでDefWindowProcを呼ぶ必要があります。

yu

Re:ウィンドウプロシージャのクラス化

#3

投稿記事 by yu » 16年前

返信ありがとうございます m(_ _)m

仰られた通りに DefWndProc を追加すると
無事にプログラムが動作しました

MSDN にそれらしいことが書いてありましたね・・・
わざわざ説明して頂きありがとうございました

閉鎖

“C言語何でも質問掲示板” へ戻る