次の方法で共有


ウィンドウ オブジェクト

MFC は、ウィンドウの ハンドルをカプセル化するHWND を提供します。 CWnd オブジェクトは C++ ウィンドウ オブジェクトであり、Windows ウィンドウを表すが、それを含むHWNDとは異なります。 CWndを使用して独自の子ウィンドウ クラスを派生させるか、CWndから派生した多くの MFC クラスのいずれかを使用します。 クラス CWnd は、フレーム ウィンドウ、ダイアログ ボックス、子ウィンドウ、コントロール、およびツールバーなどのコントロール バーを含むすべてのウィンドウの基本クラスです。 MFC を使用した効果的なプログラミングでは、C++ ウィンドウ オブジェクトと HWND の関係をよく理解することが重要です。

MFC には、ウィンドウの既定の機能と管理がいくつか用意されていますが、 CWnd から独自のクラスを派生させ、そのメンバー関数を使用して提供される機能をカスタマイズできます。 子ウィンドウを作成するには、 CWnd オブジェクトを作成し、その Create メンバー関数を呼び出してから、 CWnd メンバー関数を使用して子ウィンドウをカスタマイズします。 CView から派生したオブジェクト (フォーム ビューやツリー ビューなど) をフレーム ウィンドウに埋め込むことができます。 また、 CSplitterWnd クラスによって提供される分割ウィンドウを使用して、ドキュメントの複数のビューをサポートできます。

クラス CWnd から派生した各オブジェクトにはメッセージ マップが含まれています。これにより、Windows メッセージまたはコマンド ID を独自のハンドラーにマップできます。

Windows のプログラミングに関する一般的な資料は、CWnd API をカプセル化する HWND メンバー関数の使用方法を学習するための優れたリソースです。

CWnd で動作するための関数

CWnd その 派生ウィンドウ クラス には、オブジェクトの初期化、基になる Windows 構造体の作成、カプセル化された HWNDへのアクセスを行うコンストラクター、デストラクター、メンバー関数が用意されています。 CWnd また、メッセージの送信、ウィンドウの状態へのアクセス、座標の変換、更新、スクロール、クリップボードへのアクセス、およびその他の多くのタスクのための Windows API をカプセル化するメンバー関数も提供します。 HWND引数を受け取るほとんどの Windows ウィンドウ管理 API は、CWndのメンバー関数としてカプセル化されます。 関数の名前とそのパラメーターは、 CWnd メンバー関数に保持されます。 CWndによってカプセル化された Windows API の詳細については、CWnd クラスを参照してください。

CWnd と Windows メッセージ

CWndの主な目的の 1 つは、WM_PAINTやWM_MOUSEMOVEなどの Windows メッセージを処理するためのインターフェイスを提供することです。 CWndのメンバー関数の多くは、識別子afx_msgで始まり、プレフィックス "On" (OnPaintOnMouseMoveなど) で始まる標準メッセージのハンドラーです。 メッセージの処理とマッピングでは、 メッセージとメッセージの処理について詳しく説明します。 この情報は、フレームワークのウィンドウと、特別な目的のために自分で作成したウィンドウにも同様に適用されます。

詳しく知りたいこと

こちらも参照ください

ウィンドウズ