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 结尾的字符串或指定新窗口的类名的原子的指针。
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) |
另请参阅
概念
参考