テクニカル ノート 70: MFC のウィンドウ クラス名
Note
次のテクニカル ノートは、最初にオンライン ドキュメントの一部とされてから更新されていません。 結果として、一部のプロシージャおよびトピックが最新でないか、不正になります。 最新の情報について、オンライン ドキュメントのキーワードで関係のあるトピックを検索することをお勧めします。
MFC ウィンドウでは、ウィンドウの機能を反映して動的に作成されるクラス名が使用されます。 MFC は、アプリケーションによって生成されたフレーム ウィンドウ、ビュー、およびポップアップ ウィンドウに対してクラス名を動的に生成します。 MFC アプリケーションによって生成されるダイアログ ボックスとコントロールには、対象のウィンドウのクラスに対して Windows が指定した名前が付けられます。
独自のウィンドウ クラスを登録し、それを PreCreateWindow のオーバーライドで使用することによって、指定されたクラス名を動的に置き換えることができます。 MFC 指定のクラス名は、次の 2 つの形式のどちらかに適合します。
Afx:%x:%x
Afx:%x:%x:%x:%x:%x
%x
文字を置き換える 16 進数字は、WNDCLASS 構造体内のデータから入力されます。 MFC は、この手法を使用して、同じ WNDCLASS 構造体が必要な複数の C++ クラスが同じ登録済みウィンドウ クラスを共有できるようにします。 ほとんどの単純な Win32 アプリケーションとは異なり、MFC アプリケーションには WNDPROC が 1 つしかないため、WNDCLASS 構造体を簡単に共有して時間とメモリを節約できます。 上記の %x
文字の置換可能な値は次のとおりです。
WNDCLASS.hInstance
WNDCLASS.style
WNDCLASS.hCursor
WNDCLASS.hbrBackground
WNDCLASS.hIcon
最初の形式 (Afx:%x:%x
) は、hCursor、hbrBackground、および hIcon のすべてが NULL の場合に使用されます。