2011-12-14 7 views

答えて

5

窓。ダイアログコントロール(ボタン、リストボックスなど)は、すべてがクラスを共有する主要な例です。つまり、ウィンドウプロシージャを共有します。つまり、ペイントロジック、入力反応、カスタムメッセージ、通知などを共有します。

同じレベルのウィンドウが多い場合の最も一般的なケースは、複数文書インタフェース内の文書。ユーザーがアプリ固有のコントロールを導入することがあります。したがって、この区別はその目的に役立ちます。

5

主な目的は、処理するメッセージキューに何かがあるときにシステムに電話をかけることです(WndProc)。

いくつかのフラグがありますが、主な点は上記です。

ウィンドウクラスは、UIの 'ウィジェット' の種類に対応しています

WndProc

  • ボタン
  • チェックボックス
  • スクロールバー
  • コンボボックス
  • リストボックスが唯一でありますウィジェットの行動のドライバーt。したがって

    マッピング:ウィジェット(制御タイプ) - >wndclass - >WndProcウィンドウの分離のcreateWindow()のものとRegisterClass()ものが均一に振る舞う作成を可能にするために早期に行われたに属性

+0

他にも、['GetWindowLongPtr()'](http://msdn.microsoft.com/en-us/library/windows/desktop/)で使用可能な余分なウィンドウメモリの数など、いくつかのウィンドウ属性を指定するために使用されます。 ms633585.aspx)。ウィンドウが使用する余分なウィンドウのバイト数は、一度作成すると固定されます。 –

+0

ウィンドウクラスを別々に登録する歴史的な理由はありますか?理論的には、WndProc()はCreateWindow()の一部として渡すことができます。 Windowsシステム上の登録の目的は何ですか? –

+0

Windowsクラスをグローバルに登録し、その時点からどのアプリケーションでも使用できるメカニズムがいくつかあります。実際には、組み込みのすべてのウィンドウコントロールはそのように登録されています。私は詳細を覚えていませんが、あなたは 'global wndclass' –

関連する問題