メインプログラムに必要なHWNDは1つだけで、それはメインウィンドウ用です。
APIは単一のメインウィンドウを必要としませんが、それが最も一般的です。また、ユーザーの観点から、アプリケーションがいくつかの明らかに独立したウィンドウを提供している場合でも、プログラムにメインウィンドウを含めることをお勧めします(非表示にすることもできますが、グループ化を提供します)。
他のウィンドウは、メインウィンドウ(その中)の子、またはメインウィンドウによって「所有」されているウィンドウのいずれかになります。一般に。特に、初めてのWindowsプログラムの場合。:-)したがって、これらのウィンドウに個別の変数は必要ありません。ウィンドウが何かに反応する必要があるときはいつでも、それはウィンドウへのメッセージです。これは、関連するウィンドウハンドルを引数として関数を呼び出すことを意味します。
すべての子ウィンドウは一意の整数IDを持つことができ、それがそれらを追跡する1つの方法です。
ただし、先に進むと、状態を各ウィンドウに関連付ける必要があります。これを行う最も簡単な方法は、Windowsの「サブクラス化」APIを使用してポインターを各ウィンドウに関連付けることです。次に、ウィンドウプロシージャの呼び出しを、関連付けられたC++オブジェクトのメソッドにルーティングできます。さまざまなメッセージをさまざまなメッセージ処理メソッドにさらにルーティングでき、それぞれがウィンドウの状態にアクセスできます(これはこのC ++オブジェクトだけです)。