CWnd::CreateEx

指定されたウィンドウを作成し、それを CWnd オブジェクトにアタッチします。

virtual BOOL CreateEx(
   DWORD dwExStyle,
   LPCTSTR lpszClassName,
   LPCTSTR lpszWindowName,
   DWORD dwStyle,
   int x,
   int y,
   int nWidth,
   int nHeight,
   HWND hWndParent,
   HMENU nIDorHMenu,
   LPVOID lpParam = NULL 
);
virtual BOOL CreateEx(
   DWORD dwExStyle,
   LPCTSTR lpszClassName,
   LPCTSTR lpszWindowName,
   DWORD dwStyle,
   const RECT& rect,
   CWnd* pParentWnd,
   UINT nID,
   LPVOID lpParam = NULL
);

パラメーター

  • dwExStyle
    拡張ウィンドウ スタイルのビットごとの組み合わせ (OR)。または、既定の拡張ウィンドウ スタイルを使用する場合は NULL。

  • lpszClassName
    登録されているシステム ウィンドウ クラスの名前を含む null で終わる文字列へのポインター。または、定義済みシステム ウィンドウ クラスの名前。

  • lpszWindowName
    ウィンドウの表示名を含む null で終わる文字列へのポインター。ウィンドウの表示名がない場合は NULL。

  • dwStyle
    ウィンドウ スタイルのビットごとの組み合わせ (OR)。または、既定のウィンドウ スタイルを使用する場合は NULL。

  • x
    画面または親ウィンドウの左端からウィンドウの初期位置までの水平方向の距離。

  • y
    画面または親ウィンドウの上端からウィンドウの初期位置までの垂直方向の距離。

  • nWidth
    ウィンドウの幅 (ピクセル単位)。

  • nHeight
    ウィンドウの高さ (ピクセル単位)。

  • hwndParent
    子ウィンドウを作成する場合は、親ウィンドウへのハンドル。それ以外の場合、ウィンドウがオーナーを持つときはオーナー ウィンドウのハンドル。

  • nIDorHMenu
    子ウィンドウを作成する場合は、ウィンドウ ID。それ以外の場合は、ウィンドウのメニューの ID。

  • lpParam
    lpCreateParams フィールドを通じて CWnd::OnCreate メソッドに渡されるユーザー データへのポインター。

  • rect
    画面または親ウィンドウを基準としたウィンドウの位置とサイズ。

  • pParentWnd
    子ウィンドウを作成する場合は、親ウィンドウへのポインター。それ以外の場合、ウィンドウがオーナーを持つときはオーナー ウィンドウへのポインター。

  • nID
    子ウィンドウを作成する場合は、ウィンドウ ID。それ以外の場合は、ウィンドウのメニューの ID。

戻り値

メソッドが正常に実行された場合は TRUE。それ以外の場合は FALSE。

解説

Caution メモ注意

CWnd::PreCreateWindow は this のポインターに、メニューが NULL であり、スタイルが WS_CHILDが含まれている場合 CREATESTRUCT のパラメーターの hMenu のメンバーを割り当てます。適切な動作に、ダイアログのコントロールに NULLではない ID があることを確認します。

この変更は、マネージまたはネイティブ相互運用シナリオのクラッシュを修正。CWnd::CreateTRACE のステートメントは、開発者の問題を通知します。

既定の拡張ウィンドウ スタイルは WS_EX_LEFT です。既定のウィンドウ スタイルは WS_OVERLAPPED です。

ウィンドウ クラスを登録するには、AfxRegisterWndClass 関数を使用します。ユーザー定義のウィンドウ クラスは、それらが登録されたモジュールで使用できます。

子ウィンドウの寸法は、親ウィンドウのクライアント領域の左上隅が基準点となります。トップレベル ウィンドウの寸法は、画面の左上隅が基準点となります。

CreateEx メソッドが戻る前、かつウィンドウが表示される前に、CWnd::OnCreate メソッドが呼び出されます。

使用例

void CMyDlg::OnCreateExtendedControl() 
{
   // m_pWndStaticEx is a CWnd* member of CMyDlg
   m_pWndStaticEx = new CStatic;
   m_pWndStaticEx->CreateEx(WS_EX_CLIENTEDGE, // Make a client edge label.
      _T("STATIC"), _T("Hi"),
      WS_CHILD | WS_TABSTOP | WS_VISIBLE,
      5, 5, 30, 30, m_hWnd, (HMENU)2345);
}

必要条件

ヘッダー: afxwin.h

参照

関連項目

CWnd クラス

階層図

CWnd::Create

CreateWindowEx