RegisterClassEx

https://msdn.microsoft.com/ja-jp/library/ms633577.aspx https://msdn.microsoft.com/ja-jp/library/cc428944.aspx https://msdn.microsoft.com/ja-jp/library/ms633577.aspx https://msdn.microsoft.com/ja-jp/library/ms633577.aspx

ウィンドウクラスを登録します。登録したクラスは、CreateWindow 関数または CreateWindowEx 関数で使います。

ATOM RegisterClassEx(
  CONST WNDCLASSEX *lpwcx  // クラスデータ
);

パラメータ

lpwcx
構造体へのポインタを指定します。この構造体には、RegisterClassEx 関数に渡す前に適切なクラス属性を入れておかなければなりません。

戻り値

関数が成功すると、登録されたクラスを一意的に識別するアトムが返ります。このアトムは、CreateWindowEx 関数、CreateWindowEx 関数、および UnregisterClass 関数でしか使用できません。

関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、GetLastError 関数を使います。

解説

RegisterClassExA 関数を使ってウィンドウクラスを登録すると、作成したクラスのウィンドウがテキストパラメータや文字パラメータを持つメッセージを受け取ったときには、それらを ANSI 文字セットを使って処理するという旨をシステムに伝えたことになります。一方、RegisterClassExW 関数を使って登録すると、メッセージのテキストパラメータを Unicode で渡すようにシステムに要求したことになります。IsWindowUnicode 関数を使うと、アプリケーションから各ウィンドウの性質を問い合わせることが可能になります。Win32 API にある ANSI 関数と Unicode 関数の詳細については、「Function Prototypes」を参照してください。

アプリケーションが登録したウィンドウクラスは、アプリケーション終了時にすべて自動的に削除されます。

Windows 95:.dll により登録されたウィンドウクラスは、その .dll がアンロードされたときに削除されます。

Windows NT/2000:.dll により登録されたウィンドウクラスは、その .dll がアンロードされても一切削除されません。

Windows 95: 構造体の cbWndExtra メンバと cbClsExtra メンバに 40 バイトをより大きな値を指定すると、RegisterClassEx 関数は失敗します。

対応情報

Windows NT/2000:Windows NT 4.0 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winuser.h で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用
Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装

参照

CreateWindow, CreateWindowEx, GetClassInfoEx, GetClassName, UnregisterClass, WindowProc,

表示: