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 からさらに別のクラスを派生させると、固有のウィンドウ タイプが作成されます。CFrameWnd、CMDIFrameWnd、CMDIChildWnd、CView、CDialog などのクラスの多くは、複数のクラスの派生に対応するようにデザインされています。CButton のように、CWnd からコントロール クラスを派生すると、そのクラスを直接使用したり、さらに別のクラスの派生に使用したりできます。
CWnd の使い方の詳細については、「フレーム ウィンドウ」および「ウィンドウ オブジェクト」を参照してください。
必要条件
ヘッダー : afxwin.h
スマート デバイス開発者のためのメモ
スマート デバイス バージョンの CWnd クラス では、次のメソッドはサポートされません。