次の方法で共有


TN070: MFC ウィンドウ クラス名

次のテクニカル ノートは、最初にオンライン ドキュメントに含まれてから更新されていません。 その結果、一部の手順やトピックが古くなっているか、正しくない可能性があります。 最新情報については、オンライン ドキュメント インデックスで関心のあるトピックを検索することをお勧めします。

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) は、 hCursorhbrBackgroundおよび hIcon がすべて NULL の場合に使用されます。

こちらも参照ください

番号別テクニカル ノート
カテゴリ別テクニカル ノート
TN020: ID の名前付け規則と番号付け規則