CWnd クラス

更新 : 2007 年 11 月

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

class CWnd : public CCmdTarget

解説

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

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

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

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

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

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

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

必要条件

ヘッダー : afxwin.h

スマート デバイス開発者のためのメモ

スマート デバイス バージョンの CWnd クラス では、次のメソッドはサポートされません。

参照

参照

CCmdTarget クラス

階層図

CFrameWnd クラス

CView クラス

その他の技術情報

CWnd のメンバ