それぞれがウィンドウをもつオブジェクトをクラスとして扱うために、
ウィンドウプロシージャをフレンド関数としてそのクラスにもたせています。
(メンバ関数のアドレスを取るのは望ましくないですよね?)

インスタンスはたくさんあるけれどもWndProcはひとつなので、
WndProcから見るとどのインスタンスに属するメッセージなのかが区別できません。
これを解決するために、CreateWindowでインスタンスポインタ(this)をWM_CREATEに
渡してSTLのmapにhWndとthisポインタを格納し、メッセージに応答するときは
hWndからthisをサーチしてインスタンスを決定する、という方法をとっています。

なんだか泥臭いので、もっといい方法はないでしょうか。
こういったことはよくありそうだと思うんですけど。