CWnd::PreCreateWindow
调用由框架在Windows窗口中先前创建附加到此 CWnd 对象。
virtual BOOL PreCreateWindow(
CREATESTRUCT& cs
);
参数
- cs
CREATESTRUCT 结构。
返回值
非零,则窗口创建应继续;指示创建失败的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