Windows API は、WNDCLASS / WNDCLASSEX構造に依存する「クラス」を使用することを理解しています。
私はWindows API Hello Worldアプリケーションをうまく使いこなし、このクラスが私たち自身のウィンドウだけでなく、「EDIT」、「BUTTON」などのWindowsコアコントロールでも使用されていることを理解しています。 WndProc (関数を定義できます)
このクラスに関するドキュメントは見つかりますが、概念を説明するものは見つかりません。
これまでのところ、私が見つけた唯一のことはこれでした:
ウィンドウ クラスは、C++ クラスとは何の関係もありません。
これは本当に役に立ちません(それが何でないかは教えてくれますが、それが何であるかは教えてくれません)。実際、WNDCLASSEX を C++ クラスに関連付けて、「WNDCLASSEX」がコントロールタイプを表していると考えたくなるから です。それで、私の最初の質問は、それは何ですか?
次に、クラスで WndProc を定義できることを理解しています。ただし、ウィンドウは、子コントロール (またはウィンドウ、または Windows API で呼び出されるもの) からメッセージを取得することもできます。どうすればいいの?
最後に、新しいクラスを定義するのが適切なプログラミング方法はいつですか? アプリケーションごと (メイン フレーム用)、フレームごと、定義したコントロールごとに 1 つ (たとえば、独自のプログレス バー クラスを作成する場合)?
私は Java/Swing、C#/Windows.Form、C/GTK+、および C++/wxWidgets を知っているので、これらのツールキットとの比較はおそらく理解できるでしょう。