Win32APIにおけるコントロールのクラス化についてお聞きしたいと思い、書き込みを行いました。
コントロールのクラス化については、
http://members3.jcom.home.ne.jp/progstu ... index.html
にある、「一般的なWindowsプログラミング」の「プロシージャのメンバ化」から「サブクラス化」までを参考に実現しようと考えていました。
ところが「サブクラス化」において、SetWindowLongの第3引数に指定したウィンドウプロシージャはどのような形で持たせておくべきなのかわからずに詰ってしまいました。
コントロールのクラス化というと、そのウィンドウプロシージャもメソッドとして持っておくべきなのではないかと思ったのですが、これはstaticでなくてはなりません。
具体的には、
class Control : public Window //←これは、「ウィンドウのクラス化」のCBaseWndとほぼ同じ { public: virtual LRESULT MainProc(...); virtual void Create(); //ここで、SetWindowLongを呼び出し、ウィンドウプロシージャを「MainProc」から「ControlProc」に変更。←もちろんこれはControlのインスタンスが作成されていないためエラーとなる。 virtual LRESULT ControlProc(...); //コントロール別のプロシージャ };のように行いたいです。
もちろんこのままではSetWindowLongでエラーが出るのは確実です。
しかし、このホームページでは、コントロールのクラス化について可能であるようなことが書いてあるので、どのように実現するのか知りたかったので質問しました。
このホームページの管理人さんに連絡が取れればよかったのですが、最終更新日が2005年で、BBSも消えてしまっている状態なので、場違いかと思ったのですがここで質問させていただきました。
よろしくお願いします。