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

包含可用于创建窗口的其他数据。 如果由于调用 CreateWindowCreateWindowEx 函数而创建窗口,则此成员包含函数调用中指定的 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 结尾的字符串或指定新窗口的类名的原子的指针。

dwExStyle

类型:DWORD

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

言论

由于 lpszClass 成员可以包含指向本地原子(因此不可访问)原子的指针,因此不要使用此成员获取类名。 请改用 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