次の方法で共有


AfxRegisterWndClass

割り当てウィンドウ クラスを登録できます。

LPCTSTR AFXAPI AfxRegisterWndClass(
   UINT nClassStyle,
   HCURSOR hCursor = 0,
   HBRUSH hbrBackground = 0,
   HICON hIcon = 0 
); 

パラメーター

  • nClassStyle
    指定したを使用して作成された形式のウィンドウ クラスをフォームまたは組み合わせをビットごとの OR (|)ウィンドウ クラスの演算子。クラスの形式の一覧については、 Windows SDKの WNDCLASS の構造体を参照してください。次のよう NULLが、既定設定されている場合:

    • ユーザーがマウスをダブルクリックと送信がウィンドウ プロシージャにメッセージをダブルクリック マウス CS_DBLCLKSにフォームを設定します。

    • Windows の標準 IDC_ARROWに矢印カーソルの形式を設定します。

    • NULLに背景ブラシを設定するため、ウィンドウは背景を消しません。

    • 標準、振フラグの Windows ロゴのアイコンにアイコンを設定します。

  • hCursor
    ウィンドウ クラスから作成された各ペインにインストールされるカーソル リソースを識別するハンドルを指定します。0の既定値を使用すると、 IDC_ARROW の標準カーソルを取得します。

  • hbrBackground
    ウィンドウ クラスから作成された各ペインにインストールされるブラシ リソースを識別するハンドルを指定します。0の既定値を使用すると、 NULL の背景ブラシがあり、 WM_ERASEBKGNDの処理中にウィンドウは、既定で、背景を消しません。

  • hIcon
    ウィンドウ クラスから作成された各ペインにインストールされるアイコン リソースへのハンドルを指定します。0の既定値を使用すると、標準、振フラグの Windows ロゴのアイコンを取得します。

戻り値

クラス名を含む終了する文字列。CWnd または CWnd-の他の派生クラスの 生成(&&C),create,作成,生成 のメンバー関数にウィンドウを作成するには、このクラス名を渡すことができます。名前は Microsoft Foundation Class ライブラリによって生成されます。

[!メモ]

戻り値は、静的バッファーへのポインターです。この文字列を格納するには、 CString の変数に割り当てます。

解説

Microsoft Foundation Class ライブラリは自動的にいくつかの標準のウィンドウ クラスを登録します。ウィンドウ クラスを登録する場合は、この関数を呼び出します。

AfxRegisterWndClass によってクラスに対して登録されている名前とパラメーターに依存します。同じパラメーターの AfxRegisterWndClass の複数回をダイヤルする場合は、まずクラスのみを登録します。同じパラメーターの AfxRegisterWndClass への後続の呼び出しは既に登録したクラス名を返します。

クラスごとに個別のウィンドウ クラスを派生する代わりに同じパラメーターの複数の派生クラスの AfxRegisterWndClass を、各クラスの共有同じウィンドウ クラス ダイヤルします。これは CS_CLASSDC のクラスの形式が使用されている場合は問題が発生する可能性があります。CS_CLASSDC の複数のウィンドウ クラスの代わりに、 CS_CLASSDC の 1 種類のウィンドウ クラスと、クラスの共有同じ DC 使用するすべての C++ のウィンドウが作成されます。この問題をクラスを登録するときに避けるには、呼び出し AfxRegisterClass

ウィンドウ クラスの登録と AfxRegisterWndClass の関数の詳細については、テクニカル ノート テクニカル ノート 1: ウィンドウ クラスの登録 を参照してください。

使用例

CString strMyClass;

// load stock cursor, brush, and icon for
// my own window class

try
{
   strMyClass = AfxRegisterWndClass(
      CS_VREDRAW | CS_HREDRAW,
      ::LoadCursor(NULL, IDC_ARROW),
      (HBRUSH) ::GetStockObject(WHITE_BRUSH),
      ::LoadIcon(NULL, IDI_APPLICATION));
}
catch (CResourceException* pEx)
{
   AfxMessageBox(_T("Couldn't register class! (Already registered?)"));
   pEx->Delete();
}

必要条件

ヘッダー: afxwin.h

参照

関連項目

CWnd::Create

CWnd::PreCreateWindow

WNDCLASS

AfxRegisterClass

概念

MFC マクロとグローバル