ページ 11

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

Posted: 2009年7月19日(日) 13:35
by yu
こんにちは

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

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

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

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

OS:Windows Vista
VC++ 2008 EE

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

Posted: 2009年7月19日(日) 16:06
by tk-xleader
CreateWindow関数を呼ぶと、WM_CREATEメッセージの前に、プロシージャに幾つかメッセージが送られてきます。
そして、そのメッセージは、DefWndProc関数に処理させる必要があります。ですので、globalProcでDefWindowProcを呼ぶ必要があります。

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

Posted: 2009年7月19日(日) 16:29
by yu
返信ありがとうございます m(_ _)m

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

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