次の方法で共有


AfxRegisterClass

この関数を使って MFC を使う DLL にウィンドウ クラスを登録します。

BOOL AFXAPI AfxRegisterClass(
   WNDCLASS* lpWndClass 
);

パラメーター

  • lpWndClass
    登録されるウィンドウ クラスについての情報を持つ WNDCLASS 構造体へのポインター。 この構造体の詳細については、Windows SDK を参照してください。

戻り値

クラスが正常に登録された場合は TRUE を返します。それ以外の場合は FALSE を返します。

解説

このクラスを使っているときは、DLL がアンロードされたときにクラスが自動的に登録から抹消されます。

非 DLL のビルドではアプリケーションに登録されたクラスは自動的に登録解除されるので、AfxRegisterClass 識別子は Windows 関数 RegisterClass に割り当てられるマクロとして定義されます。 RegisterClass の代わりに AfxRegisterClass を使うと、アプリケーションでも DLL でもコードを書き換えずに使用できます。

使用例

// Register your unique class name that you wish to use
WNDCLASS wndcls;

memset(&wndcls, 0, sizeof(WNDCLASS));   // start with NULL defaults

wndcls.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;

//you can specify your own window procedure
wndcls.lpfnWndProc = ::DefWindowProc; 
wndcls.hInstance = AfxGetInstanceHandle();
wndcls.hIcon = LoadIcon(wndcls.hInstance, MAKEINTRESOURCE(IDI_MYICON));
wndcls.hCursor = LoadCursor(wndcls.hInstance, MAKEINTRESOURCE(IDC_ARROW));
wndcls.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wndcls.lpszMenuName = NULL;

// Specify your own class name for using FindWindow later
wndcls.lpszClassName = _T("MyNewClass");

// Register the new class and trace if it fails
if(!AfxRegisterClass(&wndcls))
{
   TRACE("Class Registration Failed\n");
}

必要条件

**ヘッダー:**afxwin.h

参照

概念

MFC マクロとグローバル