不带标题和边框的窗口函数详解

 2024-01-06 07:01:00  阅读 0

注册窗口类后,需要创建窗口。 使用的函数当然是(),而这个函数是基于窗口类的,所以需要指定几个参数来制定具体的窗口。 而如何创建一些无边框的窗口也是相当有技巧的,就是创建没有标题和边框的窗口,然后将程序的内容绘制在客户区中,这样就可以创建个性化的应用程序了。

接口说明

此函数创建覆盖窗口、弹出窗口或子窗口。 它指定窗口类、窗口标题、窗口样式以及窗口的初始位置和大小(可选)。 该函数还引用窗口的父窗口或窗口(如果存在)以及窗口的菜单。

要使用函数支持的扩展样式之外的扩展样式,请使用 而不是 。

API函数原型:

HWND(

, // 窗口类名

, // 窗口标题

_In_ DWORD, // 窗口样式或窗口格式

_In_ int x, // 初始 x 坐标

_In_ int y, // 初始 y 坐标

_In_ int , // 初始 x 方向大小

_In_ int , // 初始 y 方向大小

nt, // 父窗口句柄

, // 窗口菜单句柄

, //程序实例句柄

m // 创建参数

);

注:_In_表示参数为输入,_opt_表示参数为可选(并不是说没有参数,而是可以用宏来匹配参数)。

参数分析:

范围

意义

1. 窗口类名,可以是指向以 NULL 结尾的字符串或整数值的指针。

2.如果是字符串,则指定窗口的类名。这个类名可以是任何注册了函数的类名,也可以是任何预定义的控件类名

3.如果是整数,则为上次调用函数生成的全局变量。 小于此的 16 位数字必须为参数号的低 16 位,且参数的高位必须为 0

1. 窗口标题,指向以NULL结尾的字符串的指针

2. 如果窗口样式指定了标题栏,则 所指向的窗口标题将显示在标题栏上。

3、使用函数创建按钮、选择框、静态控件等控件时,可以使用 指定控件文本

指定创建窗口的样式(具体见下文↓)

1.指定窗口的初始水平位置(x坐标)

2.对于层叠或弹出窗口,x参数为窗口左上角在屏幕坐标系中的初始x坐标

3、对于子窗口来说,x是子窗口左上角相对于父窗口客户区左上角的初始x坐标。

4. 如果该参数设置为,系统将选择窗口默认的左上角坐标,并忽略 y 参数。 它仅对层叠窗口有效。 如果设置为弹出窗口或子窗口,则 x 和 y 参数设置为零。 。

1.指定窗口的初始垂直位置(y坐标)

2. 对于层叠窗口或弹出窗口,y参数是窗口左上角在屏幕坐标系中的初始y坐标。

3、对于子窗口来说,y是子窗口左上角相对于父窗口客户区左上角的初始y坐标。

e0040应输入标识符_应输入标识符的错误_error 应输入标识符

4、对于列表框,y是列表框客户区左上角相对于父窗口客户区左上角的初始y坐标。

5. 如果使用样式位创建层叠窗口且x参数设置为 ,系统将忽略y参数

1.以设备单位指定窗口的宽度

2. 对于堆叠窗口, 的值是屏幕坐标中的窗口宽度或

3、如果是,系统为窗口选择一个默认的高度和宽度(默认宽度是从初始x坐标到屏幕右边缘,默认高度是从初始y坐标到目标顶部区域。),仅适用于堆叠窗口有效,如果为弹出窗口和子窗口设置了标志,则总和设置为零

1.以设备单位指定窗口的高度

2. 对于层叠窗口,是屏幕坐标中的窗口宽度

3. 如果设置为,系统忽略该参数,自动设置 和 的默认参数

1. 指向所创建窗口的父窗口或所有者窗口的句柄

2、创建子窗口或者依赖窗口,需要提供有效的窗口句柄

3.创建一个简单的消息窗口,可以提供或提供现有消息窗口的句柄

菜单

1. 指向窗口菜单句柄,或根据窗口样式指定子窗口标识符。

2.对于层叠或弹出窗口,hMenu指定窗口使用的菜单:如果使用菜单类,hMenu可以为NULL

3、对于子窗口,hMenu指定子窗口标识符(一个整数),对话框使用这个整数值来通知父类事件。应用程序确定子窗口标识符。 对于同一父窗口的所有子窗口,该值必须是唯一的。

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

1. 指向传递给窗口消息的值的指针。该值通过参数中的结构传递

2.如果应用程序调用创建MDI客户端窗口,它必须指向一个结构体

窗口样式分析

窗户样式

意义

创建一个有边框的窗口

创建一个带有标题框的窗口(包括样式)

创建一个子窗口。 此样式窗口不能有菜单或与样式一起使用。

在父窗口内绘图时,排除子窗口区域。 创建父窗口时使用此样式。

1.排除子窗口之间的相对区域,即当特定窗口收到消息时,该样式将所有堆叠的窗口排除在绘制之外,只重绘指定的子窗口。

2、如果不指定该样式且子窗口堆叠在一起,则当子窗口的客户区重绘时,相邻的子窗口也会重绘。

1. 创建一个初始状态为的子窗口。 处于禁用状态的窗口无法接受来自用户的输入信息。

2. 窗口创建完成后,可以调用该函数来启用窗口

创建一个具有对话框边框样式的窗口。 这种样式的窗口不能有标题栏。

1.指定一组“控制窗口”中的第一个“控制窗口”

2. 该“控制窗口”组由第一个“控制窗口”和随后定义的“控制窗口”组成。 从第二个“控制窗口”开始,每个“控制窗口”都有一种样式。

3. 每个组的第一个“控制窗口”具有样式,允许用户在组之间移动

4. 然后,用户可以使用光标在组内的控件之间更改键盘焦点

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

创建一个初始状态最小化的窗口,样式相同

创建一个初始状态为最大化的窗口

创建一个带有最大化按钮的窗口。 该样式不能与 样式同时出现。 必须同时指定样式。

创建一个初始状态最小化的窗口,样式相同

创建一个带有最小化按钮的窗口。 该样式不能与 样式同时出现。 必须同时指定样式。

产生一个层叠窗口。 层叠窗口有标题栏和边框,样式与

相当于 ( | | | | | ),与样式相同

创建一个不能与该样式同时使用的弹出窗口。

相当于 ( | | ),但必须同时设置 和 才能使窗口中的某种顺序可见

创建一个具有可调整边框的窗口,其样式与

创建一个窗口,标题栏有窗口菜单,还必须设置样式

1. 创建一个“控制窗口”,当用户按 Tab 键时可以获得键盘焦点。

2. 按 Tab 键将键盘焦点转移到下一个带样式的“控制窗口”。

创建一个具有可调整边框的窗口,其样式与

产生一个层叠窗口。 层叠窗口有标题和边框,与样式相同

相当于 ( | | | | | ),与样式相同

创建一个最初可见的窗口

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

返回值:

1.如果函数成功,返回值是新窗口的句柄。

2. 如果函数失败,返回值为NULL。

应用实例

1.创建一个带有垂直和水平滚动条的窗口程序

hwnd =(,

TEXT("垂直和水平滚动条"),

| |, // | 上面两个参数就够了

,

,

,

,

无效的,

无效的,

,

无效的);

2、创建用户无法操作的win32程序

hwnd =(,

TEXT("垂直和水平滚动条"),

, // 修改为参数

,

,

,

,

无效的,

无效的,

,

无效的);

3.使用弹出窗口创建没有边框和标题栏的窗口

hwnd =(,

TEXT("垂直和水平滚动条"),

, // 弹出窗口,长宽需要修改

,

,

,

,

无效的,

无效的,

,

无效的);

四边形弹出窗口

hwnd =(,

TEXT("垂直和水平滚动条"),

|, // 弹窗,长宽需要修改

,

,

,

,

无效的,

无效的,

,

无效的);

标签: 窗口 创建 风格

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码