CWnd クラス

Microsoft Foundation Class ライブラリにあるすべてのウィンドウ クラスの基本機能が用意されています。

class CWnd : public CCmdTarget

解説

CWnd オブジェクトは、Windows のウィンドウとは異なりますが、両者は密にリンクされています。 CWnd オブジェクトは、CWnd コンストラクターにより作成され、CWnd デストラクターにより破棄されます。 一方、Windows のウィンドウは、Windows 内部のデータ構造体であり、Create メンバー関数により作成され、CWnd 仮想デストラクターにより破棄されます。 DestroyWindow 関数は、オブジェクトを破棄せずに Windows のウィンドウを破棄します。

CWnd クラスとメッセージ マップ機構では、WndProc 関数が表示されません。 Windows からの通知メッセージは、メッセージ マップを通じて適切な OnMessage CWnd メンバー関数に自動送信されます。 派生クラスのメンバー固有のメッセージを処理するには、OnMessage メンバー関数をオーバーライドします。

CWnd クラスでは、固有のアプリケーションに対応する Windows の子ウィンドウも作成できます。 アプリケーション固有のデータを格納するには、CWnd からクラスを派生させ、その派生クラスにメンバー変数を追加します。 ウィンドウにメッセージが送られたときに行われる処理を指定するには、派生クラスにメッセージ処理メンバー関数とメッセージ マップを実装します。

子ウィンドウは 2 ステップで作成されます。 最初に、コンストラクター CWnd を呼び出して CWnd オブジェクトを生成します。次に、Create メンバー関数を呼び出して子ウィンドウを作成し、CWnd オブジェクトに関連付けます。

子ウィンドウの終了時に、ウィンドウを削除しそのデータ構造体を破棄するには、CWnd オブジェクトを破棄するか、DestroyWindow メンバー関数を呼び出します。

Microsoft Foundation Class ライブラリ内で、CWnd からさらに別のクラスを派生させると、固有のウィンドウ タイプが作成されます。 CFrameWndCMDIFrameWndCMDIChildWndCViewCDialog などのクラスの多くは、複数のクラスの派生に対応するようにデザインされています。 CButton のように、CWnd からコントロール クラスを派生すると、そのクラスを直接使用したり、さらに別のクラスの派生に使用したりできます。

CWnd の使い方の詳細については、「フレーム ウィンドウ」および「ウィンドウ オブジェクト」を参照してください。

必要条件

**ヘッダー:**afxwin.h

参照

参照

CCmdTarget クラス

階層図

CFrameWnd クラス

CView クラス

概念

CWnd のメンバー