CREATESTRUCTA 结构 (winuser.h)

定义传递给应用程序的窗口过程的初始化参数。 这些成员与 CreateWindowEx 函数的参数相同。

语法

typedef struct tagCREATESTRUCTA {
  LPVOID    lpCreateParams;
  HINSTANCE hInstance;
  HMENU     hMenu;
  HWND      hwndParent;
  int       cy;
  int       cx;
  int       y;
  int       x;
  LONG      style;
  LPCSTR    lpszName;
  LPCSTR    lpszClass;
  DWORD     dwExStyle;
} CREATESTRUCTA, *LPCREATESTRUCTA;

成员

lpCreateParams

类型: LPVOID

包含可用于创建窗口的其他数据。 如果窗口是由于调用 CreateWindow 或 CreateWindowEx 函数而创建的,则此成员包含函数调用中指定的 lpParam 参数的值。

如果要创建的窗口是 MDI 客户端窗口,则此成员包含指向 CLIENTCREATESTRUCT 结构的指针。 如果要创建的窗口是 MDI 子窗口,则此成员包含指向 MDICREATESTRUCT 结构的指针。

如果窗口是从对话框模板创建的,则此成员是指定窗口创建数据的大小(以字节为单位)的 SHORT 值的地址。 该值紧跟创建数据。 有关更多信息,请参见下面的“备注”部分。

hInstance

类型: HINSTANCE

拥有新窗口的模块的句柄。

hMenu

类型: HMENU

新窗口要使用的菜单的句柄。

hwndParent

类型:HWND

父窗口的句柄(如果该窗口是子窗口)。 如果窗口是所有者,则此成员标识所有者窗口。 如果窗口不是子窗口或拥有的窗口,则此成员为 NULL

cy

类型: int

新窗口的高度(以像素为单位)。

cx

类型: int

新窗口的宽度(以像素为单位)。

y

类型: int

新窗口左上角的 y 坐标。 如果新窗口是子窗口,则坐标相对于父窗口。 否则,坐标相对于屏幕原点。

x

类型: int

新窗口左上角的 x 坐标。 如果新窗口是子窗口,则坐标相对于父窗口。 否则,坐标相对于屏幕原点。

style

类型: LONG

新窗口的样式。 有关可能值的列表,请参阅 窗口样式

lpszName

类型: LPCTSTR

新窗口的名称。

lpszClass

类型: LPCTSTR

指向以 null 结尾的字符串的指针,或指定新窗口的类名的 atom。

dwExStyle

类型:DWORD

新窗口的扩展窗口样式。 有关可能值的列表,请参阅 扩展窗口样式

注解

由于 lpszClass 成员可能包含指向本地 (的指针,因此) atom 无法访问,因此请不要使用此成员获取类名。 请改用 GetClassName 函数。

应使用已使用 UNALIGNED 类型声明的指针访问 lpCreateParams 成员表示的数据,因为指针可能不是 DWORD 对齐的。 以下示例对此进行了演示:

typedef struct tagMyData 
{
    // Define creation data here. 
} MYDATA; 
 
typedef struct tagMyDlgData 
{ 
    SHORT   cbExtra; 
    MYDATA  myData; 
} MYDLGDATA, UNALIGNED *PMYDLGDATA; 
 
PMYDLGDATA pMyDlgdata = (PMYDLGDATA) (((LPCREATESTRUCT) lParam)->lpCreateParams);

注意

winuser.h 标头将 CREATESTRUCT 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 winuser.h (包括 Windows.h)

另请参阅

关于多文档界面

概念性

CreateWindow

CreateWindowEx

MDICREATESTRUCT

引用

Windows