CreateWindowEx详解
阅读原文时间:2023年07月09日阅读:1

语法:

HWND CreateWindowEx( DWORD dwExStyle,
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);

参数:

dwExStyle:指定扩展的窗口样式。为以下值中的一个或多个:

WS_EX_ACCEPTFILES

指定此样式创建一个窗口接受拖放文件。

WS_EX_APPWINDOW

当窗口可见时部队一个顶级窗口到任务栏上。

WS_EX_CLIENTEDGE

指定窗口具有三维外观 — — 就是一个边界与沉没的边缘。

WS_EX_CONTEXTHELP

在窗口的标题栏中包括一个问号。当用户单击问号,光标更改为一个问号指针。如果用户单击一个子窗口,孩子接受WM_HELP消息。

WS_EX_CONTROLPARENT

允许用户使用 TAB 键导航之间的子窗口的窗口。

WS_EX_DLGMODALFRAME

选定一个带有 (可选) 时,可能创建一个标题栏与你在dwStyle参数中指定WS_CAPTION风格标志的双边框的窗口。

WS_EX_LAYERED

创建分层的窗口。请注意这不能用于子窗口。此外,这不能使用如果窗口有 CS_OWNDC 或 CS_CLASSDC 的类样式

WS_EX_LAYOUTRTL

创建一个窗口,其水平的起源是右边缘。增加水平值预先向左。

WS_EX_LEFT

给窗口一般左对齐属性。这是默认值。

WS_EX_LEFTSCROLLBAR

客户区的左侧放置垂直滚动条。

WS_EX_LTRREADING

显示窗口文本使用从左到右阅读顺序属性。这是默认值。

WS_EX_MDICHILD

创建 MDI 子窗口。

WS_EX_NOPARENTNOTIFY

指定用这种方式创建的子窗口将不发送WM_PARENTNOTIFY消息给它的父窗口创建或销毁子窗口时。

WS_EX_OVERLAPPEDWINDOW

结合WS_EX_CLIENTEDGE和WS_EX_WINDOWEDGE的样式

WS_EX_PALETTEWINDOW

结合WS_EX_WINDOWEDGE和WS_EX_TOPMOST的样式。

WS_EX_RIGHT

给一个窗口右对齐的通用属性。这取决于该窗口类。

WS_EX_RIGHTSCROLLBAR

右侧的客户区地方垂直滚动条 (如果存在)。这是默认值。

WS_EX_RTLREADING

显示窗口文本使用右到左的阅读顺序属性。

WS_EX_STATICEDG

E创建具有三维边框样式可用于不接受用户输入的项目窗口。

WS_EX_TOOLWINDOW

创建一个工具窗口,它是可用于作为一个浮动的工具栏窗口。一个工具窗口具有短于正常的标题栏,标题栏和使用较小字体绘制的窗口标题。
工具窗口不会出现在任务条形图或当用户按下 ALT + TAB 时出现的窗口中。

WS_EX_TOPMOST

指定此样式创建一个窗口应放置高于所有顶层窗口和窗口被停用时,即使它们上面留。
应用程序可以使用SetWindowPos成员函数来添加或删除该属性。

WS_EX_TRANSPARENT

指定此样式创建一个窗口将是透明的。就是任何窗口,在窗口下方的窗口不被遮盖。用此样式创建一个窗口收到WM_PAINT消息已经更新,
在它下面的所有同级窗口后才。

WS_EX_WINDOWEDGE

指定窗口已具有凸起的边缘的边框。

dwStyle:指定窗口样式。其值为以下值中的一个或多个:

WS_BORDER

创建一个有边框的窗口。

WS_CAPTION

创建一个具有标题栏 (意味着WS_BORDER样式) 的窗口。不能用的WS_DLGFRAME样式。

WS_CHILD

创建一个子窗口。不能用的WS_POPUP样式。

WS_CHILDWINDOW

与WS_CHILD样式相同。

WS_CLIPCHILDREN

不包括在父窗口内绘制时子窗口所占用的区域。当您创建父窗口时使用。

WS_CLIPSIBLINGS

剪辑子窗口彼此;也就是说,当一个特定的子窗口接收绘制消息, WS_CLIPSIBLINGS风格剪辑子窗口要更新的区域外的所有其他重叠的子窗口。
(如果没有给WS_CLIPSIBLINGS和子窗口重叠内子窗口的客户区,
绘制时,它是可能内相邻的子窗口的客户区的绘制。与WS_CHILD样式只一起使用。

WS_DISABLED

创建一个窗口是最初被禁用。

WS_DLGFRAME

创建一个窗口,但是没有头衔的双边框。

WS_GROUP

指定一组控件,用户可以从一个控件移向下的箭头键的第一个控件。用虚假的WS_GROUP样式后的第一个控件定义的所有控件都属于同一个组。
WS_GROUP样式的下一控件启动下一个组 (就是下一步的开始位置的一组结束)。

WS_HSCROLL

创建一个具有水平滚动条的窗口。

WS_ICONIC

创建一个最初最小化的窗口。WS_MINIMIZE样式相同。

WS_MAXIMIZE

创建一个窗口的最大大小。

WS_MAXIMIZEBOX

创建一个窗口有最大化按钮。

WS_MINIMIZE

创建一个最初最小化的窗口。与仅WS_OVERLAPPED样式一起使用。

WS_MINIMIZEBOX

创建一个具有最小化按钮的窗口。

WS_OVERLAPPED

创建重叠的窗口。重叠的窗口通常具有标题和边框。

WS_OVERLAPPEDWINDOW

与WS_OVERLAPPED、 WS_CAPTION、 WS_SYSMENU、 WS_THICKFRAME、
WS_MINIMIZEBOX和WS_MAXIMIZEBOX样式创建重叠的窗口。

WS_POPUP

创建一个弹出窗口。不能使用具有WS_CHILD样式。

WS_POPUPWINDOW

用WS_BORDER,
WS_POPUP和WS_SYSMENU的样式创建一个弹出窗口。WS_CAPTION样式必须结合WS_POPUPWINDOW样式,以使控制菜单上可见。

WS_SIZEBOX

创建一个具有大小调整边框的窗口。WS_THICKFRAME样式相同。

WS_SYSMENU

创建一个窗口,都有一个控制菜单框在其标题栏中。仅用于带有标题栏的窗口。

WS_TABSTOP

指定任意数量的控件,通过它用户可以通过使用 TAB 键移动之一。TAB 键移动用户到指定WS_TABSTOP风格的下一个控件。

WS_THICKFRAME

创建一个窗口,用厚厚的框架,可以用来调整窗口的大小。

WS_TILED

创建重叠的窗口。重叠的窗口有标题栏和边框。WS_OVERLAPPED样式相同。

WS_TILEDWINDOW 

用 WS_OVERLAPPED、 WS_CAPTION、
WS_SYSMENU、 WS_THICKFRAME、 WS_MINIMIZEBOX 和 WS_MAXIMIZEBOX 的样式创建重叠的窗口。
与WS_OVERLAPPEDWINDOW 样式相同。

WS_VISIBLE

创建的窗体可见

WS_VSCROLL 

创建一个具有垂直滚动条的窗口.

lpClassName:指定类名。是一个指针,指向以null结尾的串。

可以是任意串,也可以是用RegisterClass或RegisterClassEx注册的类名,也可以是系统类名。

系统类名

说明

Button

按钮

ComboBox

组合框

Edit

编辑框

ListBox

列表框

MDIClient

MDI客户端窗口

ScrollBar

滚动条

Static

静态控件类

ComboLBox

组合框列表

DDEMLEvent

动态数据交换管理库(DDEML)事件

Message

只有消息的窗口

#32768

菜单

#32769

桌面窗口

#32770

对话框

#32771

任务切换窗口

#32772

图标标题

lpWindowName:窗口标题

x,y,nWidth,nHeight:指定位置和大小

hMenu:

菜单的句柄,或指定一个子窗口标识符,根据不同的窗口样式。对于重叠或弹出式窗口,hMenu 标识的菜单,用于与窗口 ;如果要使用的类菜单,它可以为 NULL。对于子窗口,hMenu 指定的子窗口标识符,整数值对话框控件用来通知其父有关的事件。应用程序确定的子窗口标识符 ;它必须是唯一的具有相同的父窗口的所有子窗口。

hInstance:

要将与窗口关联的模块的实例句柄。

lpParam:

值通过 CREATESTRUCT 结构 (lpCreateParams 成员) 传递给窗口的指针指向 WM_CREATE 消息的 lParam 参数。此消息发送到创建的窗口通过此函数在返回之前。

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章