標準のウィンドウプロシージャ関数は、次のプロトタイプを使用します。
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クラスにアクセスする別の方法はありますか?