標準のウィンドウプロシージャ関数は、次のプロトタイプを使用します。
LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
WM_MOUSEMOVE
またはなどのメッセージが送信されるWM_CHAR
と、WndProc
関数はメッセージの発信元のウィンドウと、msgおよびwParam/lParamを使用する追加のパラメーターを受け取ります。
私が今持っているのはクラスです。言う
class Random
{
public:
void Initialize ();
private:
void Draw ();
HWND hWnd;
friend LRESULT CALLBACK RandomProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
};
hWnd
によって初期化および作成された後、Initialize ()
になどのメッセージを送信WM_LBUTTONDOWN
しますRandomProc
。メッセージを受信したら、クラスのウィンドウを再描画するRandomProc
ために使用したいと思います。Draw ()
Random
重要なのは、複数のRandom
変数があり、それぞれにウィンドウがあるということです。すべてのウィンドウはにメッセージを送信しRandomProc
、の対応するウィンドウを再描画する必要がありhWnd
ます。hWndパラメータまたはmsg/wParam / lParamに基づいてどの確率変数がメッセージを送信したかわからないため、適切なDraw ()
関数にアクセスできず、正しいウィンドウを再描画できません。
メッセージが送信されるたびにウィンドウのクラスへのポインタをプロシージャに渡す方法はありますか、またはhWndがメッセージを送信したRandomクラスにアクセスする別の方法はありますか?