CWnd::PreCreateWindow

调用由框架在Windows窗口中先前创建附加到此 CWnd 对象。

virtual BOOL PreCreateWindow( 
   CREATESTRUCT& cs  
);

参数

返回值

非零,则窗口创建应继续;指示创建失败的0。

备注

警告

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

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

不要直接调用此函数。

此功能测试的默认实现 NULL 窗口类名和备用项的一个适当的默认值。 在窗口中创建之前,请重写该成员函数的修改 CREATESTRUCT 结构。

CWnd 派生的每选件类添加自己的功能。PreCreateWindow其重写。 按照设计,PreCreateWindow 的这些派生无文档。 若要确定样式对应于每个选件类和依赖关系样式之间,可以检查MFC源代码应用程序的基类。 如果选择重写 PreCreateWindow, 可以确定应用程序所使用的基类的样式是否提供需要通过使用MFC源代码以收集的信息的功能。

有关更改窗口样式的更多信息,请参见 更改MFC创建的窗口的样式

示例

// alter the styles of the mdi frame window
BOOL CMdiChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
   // Create a window without min/max buttons or sizable border
   cs.style |= WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;

   // Size the window to 1/3 screen size and center it
   cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3;
   cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;
   cs.y = ((cs.cy * 3) - cs.cy) / 2;
   cs.x = ((cs.cx * 3) - cs.cx) / 2;

   return CMDIChildWnd::PreCreateWindow(cs);
}

要求

Header: afxwin.h

请参见

参考

CWnd 类

层次结构图

CWnd::Create

CWnd::CreateEx

CREATESTRUCT 结构