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) |
另请参阅
概念性
引用