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
    按位组合(或)的 扩展窗口样式;否则该默认的 NULL 扩展的窗口样式。

  • lpszClassName
    对包含注册的系统窗口选件类的名称为Null结尾的字符串的指针;或预定义的系统窗口选件类的名称。

  • lpszWindowName
    对包含窗口显示名称为的Null结尾的字符串的指针;否则没有windows显示名称的 NULL。

  • dwStyle
    按位组合(或)的 窗口样式;否则默认窗口样式的 NULL。

  • x
    窗口的初始图边距从屏幕或父窗口的左侧。

  • y
    窗口的最初的垂直距离屏幕或父窗口的顶部。

  • nWidth
    宽度,以像素,窗口。

  • nHeight
    高度,均以像素,窗口。

  • hwndParent
    为子窗口,处理到父窗口;否则,所有者窗口的句柄,如果窗口都有一个所有者。

  • nIDorHMenu
    为子窗口,这些窗口ID;否则,一个菜单的ID窗口中。

  • lpParam
    对传递到在 lpCreateParams 字段的 CWnd::OnCreate 方法的用户数据的指针。

  • rect
    窗口的大小和位置相对于屏幕或父窗口的。

  • pParentWnd
    为子窗口,指向父窗口;否则,指向所有者窗口,如果窗口都有一个所有者。

  • nID
    为子窗口,这些窗口ID;否则,一个菜单的ID窗口中。

返回值

TRUE,如果方法成功;否则 FALSE。

备注

警告

CWnd::PreCreateWindow 现在将其 CREATESTRUCT 参数的hMenu成员添加到 this 指针,如果菜单是 NULL,并且该样式包含 WS_CHILD。对于相应的功能,请确保不是 NULL的对话框控件具有ID。

此更改修复跨托管/本机互操作方案的一失败。在 CWnd::Create 警报的一个 TRACE 语句问题的开发人员。

默认扩展的窗口样式是 WS_EX_LEFT。 默认窗口样式是 WS_OVERLAPPED

使用 AfxRegisterWndClass 功能对"寄存器"窗口选件类。 用户定义的windows选件类可用在注册的模块。

子窗口的维度是相对于父窗口工作区的左上角。 顶级窗口的维度是相对于屏幕的左上角。

CWnd::OnCreate 方法调用,在 CreateEx 方法返回之前,因此,在窗口之前将变得可见。

示例

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