U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 帮助中心 >

手把手教你写第一个Windows窗口

来源:http://www.tudoupe.com时间:2022-05-09

首个 Window 窗口

  • 效果展示
  • 详细过程
    • 设计窗口类
    • 注册窗口类
    • 创建窗口
    • 显示窗口
    • 更新窗口
    • 消息循环
  • 源代码
  • 实用工具
    • 图标制作软件
    • 图标库

效果展示

首个 Window 窗口

详细过程

设计窗口类

首先,如果要稍后使用自定义的窗口类型名称和窗口标题,则不得缺少这些名称和标题。

随后为窗口类创建了标准操作,按步逐步进行。

上述软件创建了一个窗口级 wc, 然后初始化了其所有参数 。
让我们审查WNDCLASS参数:

typedef struct tagWNDCLASSA {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
} WNDCLASSA, *PWNDCLASSA, *NPWNDCLASSA, *LPWNDCLASSA;

让我们逐一审查每个参数。

1. 存在窗口样式(样式),是可选的,在使用多种样式时由“”链接。
CS_HREDRW CS_VREDAW(如果横向和纵向调整)是一般设置。

常量/值 说明
CS_BYTEALIGNCLIENT 将窗口的工作区域对齐到字节边界( x 方向) 。 此样式会改变显示窗口的宽度和水平位置 。
CS_BYTEALIGNWINDOW 在字节边框上对齐窗口( x 方向) 。 此样式会改变显示窗口的宽度和水平位置 。
CS_CLASSDC 要提供设备上下文,类中的所有窗口都共享此属性 。Windows是针对具体过程的,因此这样可以让许多线形应用程序生成相同的窗口 。同时,线线可能试图进入装置上下文。 发生这种情况时,系统只允许一条线正确执行绘图任务 。
CS_DBLCLKS 当用户双击该类别中的窗口时,它会向窗口进程发送双击消息。
CS_DROPSHADOW 启用窗口的阴影效果 。SPISETDROPSHADOW_ 效应 被混合开关。 通常,用于短期生存(例如菜单),用于帮助个人的日常生活。在其他窗口的顺序中,划下它们与 Z 的链接。使用此样式的窗口必须从类中创建; 它们不能是子窗口 。
CS_GLOBALCLASS 程序的全球类别是指示窗口类 。
CS_HREDRAW 当移动或调整工作空间宽度以改变工作空间宽度时,整个窗口将被重新油漆。
CS_NOCLOSE 删除窗口菜单中的“关闭”选项。
CS_OWNDC 为每个窗口分配该类唯一的设备上下文 。
CS_PARENTDC 设置父窗口的子窗口剪切矩形 。允许儿童窗口绘制父窗口标记为 CSPARENTDC_ style 位的窗口会接收系统的标准设备上下文 。它不包括母级或次级设备设置。SCPARENTDC_ 指定它能改进应用程序的性能 。
CS_SAVEBITS 这些窗口的屏幕图像元素被保存为位图 。 删除窗口后,系统使用存储的位图恢复屏幕上的图像 。所覆盖的其他窗口也包括在内。 因此,如果位图的内存没有被删除,因此,随后的屏幕活动不会使保存的照片无法使用。,系统不会向隐藏的窗口发送 WMPAINT_ 消息。这一设计适用于小型窗口(例如,菜单或对话框窗口)然后在采取任何额外的屏幕行动之前将其删除。此方法会延长显示窗口所需的时间 。因为系统必须首先分配 内存( 内存) 以便存储位图 。
CS_VREDRAW 如果您移动或调整窗口大小以调整工作空间的高度,它会重新拖动整个窗口。

2、窗口处理函数
我们想要个性化的窗口处理功能。
艺术成果的处理产生了长期的结果。

参数 描述 类型
hWnd 窗口控件( 当前窗口的窗口控件) HWND代表结构体指示器。
uMsg 信件号( 例如, (鼠点击, 拖动) UINT (usigned int)
wParam 添加的窗口信息( 如鼠标的坐标) WPARAM (usigned int)
lParam 窗口附加信息 LPARAM (long)

例如:

LRESUT CALBANK 函数( HWND hWnd, UINT ummsg, WPARAM wPAram, LPARAM lPAram) 的名称固定。以下函数完全自写。WM_CLOSE和WM_DESTROY都是必需的。记住在结束时引用操作系统的默认信件处理功能。

3. 额外窗口类扩展空间大小(字节)
设置为0

4. Windows的额外扩展空间大小(单位:字节)
设置为0

5、窗口句柄
WinMain 函数的第一个参数设置为当前应用程序的样本控件 。

6、窗口图标句柄
使用默认的窗口图标控件, 例如 :
wc.hIcon = NULL;

使用自定义的窗口图标手柄, 如 :
wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON));

加载 Icon: 打开含有图标的文件 。
第一个论点是应用程序示例处理。
如果没有系统资源,请使用NULL。
如果资源是自定义的,请使用 hInstance 。
第二个论点是资源代号(信头文件和资源.h的一致性),参数类型是LPCWSTR。
MaTIINTROUNCE () 将给定类型转换为 LPCWSTR 。

7、光标图标句柄
使用默认的光标图标控件, 例如 :
wc.hCursor = NULL;

使用自定义光标图标手柄, 如 :
wc.hCursor = LoadCursor(hInstance, MAKEINTRESOURCE(IDC_CURSOR));

8、背景画刷句柄
使用 RGB 模式设定窗口背景的颜色 。
例如:
wc.hbrBackground = CreateSolidBrush(RGB(255, 255, 255));

9、菜单名
wc.lpszMenuName = NULL;
使这个阶段 NULL 。

10、窗口类型名
启动时唯一的窗口类型名称
例如:
wc.lpszClassName = szAppClassName;

提示:几个API以W开头,表示其字符组是Unicode。

注册窗口类

注册的窗口类使用登记册分类方法,我们需要做的就是将先前定义的窗口类名称传给地址,然后建立一个简单的条件,检查注册是否成功。

例如:

创建窗口

创建带有 CreativeWindow 函数的窗口, 然后只是初始化参数和检查, 以查看窗口是否正确构建 。

例如:

使用 HWND hWnd 获取已生产的窗口, 窗口可以定制, 但并不总是用于 hWnd 。

系统中的创建窗口函数定义如下。

HWND WINAPI CreateWindow(
In_optLPCTSTR lpClassName,
In_optLPCTSTR lpWindowName,
InDWORD dwStyle,
Inint x,
Inint y,
Inint nWidth,
Inint nHeight,
In_optHWND hWndParent,
In_optHMENU hMenu,
In_optHINSTANCE hInstance,
In_optLPVOID lpParam
);

窗口常用风格

风格 描述
WS_CAPTION 该窗口有一个标题栏
WS_SYSMENU 窗口的标题栏有一个窗口菜单 。
WS_MAXIMIZEBOX 窗口的最大按钮不能与 WS_ EX_ CONTEXTHEP 样式连接 。
WS_MINIMIZEBOX 窗口显示一个无法与 WS_ EX_CONTEXTHEP 样式结合使用的最小化按钮。
WS_MAXIMIZE 窗口最初是最大化的
WS_MINIMIZE 窗口最初是最小化的
WS_CHILD 因为窗口是一个子窗口, 它不能有一个菜单栏 。
WS_DISABLED 窗口最初被禁用, 无法接收用户输入 。 要在建立窗口后修改此设置, 请使用“ 启用窗口” 方法 。
WS_HSCROLL 窗口中存在水平滚动条。
WS_VSCROLL 窗口中存在垂直滚动条。
WS_ICONIC 窗口最初是最小化的

显示窗口

要在已建窗口中通过, 请使用 ShowWindow 方法 。

SW_SHOW 是常规显示模式设置 。

更新窗口

要通过新生成的窗口, 请使用“ 更新窗口” 函数 。

消息循环

一位朋友问为什么需要一个循环。
因为如果没有循环, 窗口会闪烁 。

我们构建一个变量以接收窗口信件, 然后使用 GetMessage、 TranslateMessage 和 SentraMessage 方法处理没有的邮件 。

源代码

实用工具

可能有些小伙伴不知道如何设计自己的图标和时间轴, 这不仅仅是把照片的后缀换成.. 我不知道你在说什么。我们可以用卷卷做这个, 我会给一个图标制作程序和一个网站, 有很多免费的图标。

图标制作软件

icofx
这是程序的一个链接。
网站:https://pan.org/我不知道你在说什么,宝贝.pwd=czjy
提取码:czjy

下载压缩后,将箭头显示的快捷键复制到桌面。

在这里插入图片描述
使用方法:
将图像拖放到 icfx 界面中, 然后选择创建图标或光标, 然后 CTRL+S 将保存它们 。

在这里插入图片描述
现在让我们讨论如何为该项目增加资源。

最初,下列材料将放入项目文件夹:


然后,在这个项目中, 找到资源文件 并按下图表。
在这里插入图片描述
下一步, 在导入图标( Icon) 和光标( Cursor) 之间选择 。

在这里插入图片描述
下一步,在项目文件夹中查找并添加相关资源。

图标库

https://www.iconfont.cn/

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息