Windos应用程序基础(详细,简单易懂)
来源:http://www.tudoupe.com时间:2022-04-08
Windows 应用程序基础
- 一.前言
- Windows 编程的两点基本原理
- (1)窗口
- (2)事件驱动
- (3)句柄
- 三. 窗口活动驱动设计
- (1)程序入口函数
- (2)定义窗口类
- (3)注册窗口类
- (4)创建窗口类
- (5)显示窗口
- (6)消息循环
- (7)窗口函数
- 四.实践
- 五.结语
一.前言
- 各位好,这是我在博客上的第一篇文章。让我先自我介绍一下。我是双向高中的新生。
- 我为什么要开个博客?为什么?说实话,我从没有想过要开一个博客。我喜欢看别人的博客直到有一天,李,一个好同学,过来 卖给我他的博客。我那时就很惊讶,哇,在你大一的时候,你会成为博客。这么厉害。然后他告诉我,“你也能做到。”就当做笔记吧。”他的身份识别码是qq_64484137。他也是个新博客。很厉害的,让我们仔细检查一下他!冲冲冲!)之后我也想了想,博客也有很多优点。在博客过程中,你可继续扩大你的专业知识。提高自己的能力,这是学习的绝佳方法老实说,我有点内向所以我要尝试通过建立博客来改变我自己。这是我第一次遇到一个希望更开心的男人我有点羞愧 承认这一点。于是,我想开个博客
- 就在不久,我们的教官刚解释完Windows程序基础说实话,我听的也不是很懂,然而,由于最近的学习和实践,从根本上说,我理解所以接下来,让我向你们解释Windows应用程序的基本原理(它们很简单)。系好安全带,我们出发啦!
(本次使用的编译器为Microsoft Visual C++ 2010 Express,创建项目:新建项目->Win32项目->勾选空项目以及Windows应用程序->完成)
Windows 编程的两点基本原理

(1)窗口
窗口是 Windows 及其应用程序的主要界面 。是屏幕上出现的程序创建的矩形区域,是应用程序与用户的直接互动;应用程序控制与窗口连接的所有内容。这包括窗口的大小、样式、位置和内容。
它被预先编程到Windows。就是编一个窗口,这个窗口现在可能显示和与人类互动。您所看到的网站是一个窗口 。我写给你的信就在这扇窗子上您也可以使用我的材料,将它复制并粘贴到一系列过程(人际互动)中。
(2)事件驱动
视窗利用由事件驱动的方法。代码的编制顺序对程序没有影响。事件的发生决定了它的行为。这些事件都是混乱的。因此,Windows程序围绕信息的创建和处理进行严密结构。主要职责是整理和处理从事件中收集的信息。该程序的实施是选择和处理事件的过程。当没有办法启动某一事件时,由于查询事件队列失败, 程序已入睡 。从而释放CPU。
如何理解由事件驱动的战略?事件,驱动。是否有必须推动的事件?没事件就不会驱动?没错,就是这个道理,当有事件发生时,这些活动将由该系统收集。然后发送给处理器,处理器完成后最终,对事件的发生有适当的反应。是不是很好理解呀。
(3)句柄
处理是所有 Windows 程序程序的基础 。唯一使用的整数值是手柄 。也就是说,一个字节(过程中的64字节)的值很长。区分各种应用项目以及同一物种的不同代表,例如窗口、 屁股、 滚动条、 输出设备、 文件等程序可使用控点获取相关对象的信息。
句柄是很重要的。但是,难道不难理解 这一切是怎么回事吗?句柄?什么东西啊!说实话,当我在注意老师的时候我也是一头雾水。于是我上网 找到了一个很好的解释控点是一个独特的标识符 。一个标识符。怎么用呢?很简单。每个人都知道 C++ 中如何定义整数变量 。
之后,我们定义了一个窗口把手。
你看,它们被以同样的方式宣布, 如果你想要定义整形数据, 这是一字不差的, 如果你想创建一个窗口控管, 它在 HWD 中。 这个比较应该很容易理解 。
| 句柄类型 | 说明 |
|---|---|
| HWND | 窗口句柄 |
| HINSTANCE | 程序实例句柄 |
| HCURSOR | 鼠标句柄 |
| HFONT | 字体句柄 |
| HIPEN | 画笔句柄 |
| HBRUSH | 画刷句柄 |
| BIDC | 图形设备环境句柄 |
| HBITMAP | 位图句柄 |
| HICON | 图标句柄 |
| HMENU | 菜单句柄 |
| HFILE | 文件句柄 |
三. 窗口活动驱动设计
- 最终,我们达到了概念理论的头条标题,这更难理解,因此我们现在将研究实践,看看这些概念想法是如何使用的。这就是事情将如何改善。
- 视窗程序是通过程序门户、窗口定义、窗口登记、窗口创建、窗口更新、窗口显示、信息循环、窗口信息处理以及终止程序执行实体来实施的。

(1)程序入口函数
Maof () 函数是 C/ C++ 程序中的入口函数。 但是, 在 Windows 应用程序中, 此门户函数被 WinMain () 取代, 原型为 :
- WINAPI是订婚电话,是要求商定定义功能以接受打电话者的论点,例如确定在书架上显示论点的顺序。
- 该方法生成一个不为操作系统使用的整数值, 但是您可以使用它将状态代码发送到您创建的其他应用程序 。
说实话,当我们在学习新东西时,我们有时必须谨慎。什么叫做要有分寸?这就是你需要知道的 关于什么是值得学习。没有必要详细讨论什么是需要的。考虑上一个条目函数中的参数。你不需要找出它为什么起作用。即使你完全理解它,它也是无效的。而且还费时间。所以,简单理解它的含义。
因此,对于门户功能,我们需要知道的只是它如此具体。
(2)定义窗口类
让我们看看在创建程序条目函数时如何构建窗口。 定义窗口, 并指定其基本属性, 如窗口边框、 窗口标题栏文字、 窗口大小和位置、 鼠标、 背景颜色、 控点窗口信件函数的名称等等 。
窗口类定义通过给窗口类数据结构WNDCLASS指定一个值来完成。 WNDCLASS 包含许多窗口类属性。 让我们看看 WNDCLASS 的结构 。
这就是WNDCLASS的结构, 我实际上不需要这样做, 因为编译者已经创造了它, 我们只需要调用和珍惜它。
多个属性成员要提供多个值, 不同的值有不同的影响, 当我给您指定窗口的全部链接时, 我不会重复这些 。
细节。
(3)注册窗口类
虽然我们定义了一个窗口,但系统并不知道它的存在,因此我们使用注册分类方法登记窗口类别。
这是一个简单的程序 以注册窗口的形式。
(4)创建窗口类
注册窗口后没有生成任何窗口实体, 我们可以使用“ 创建窗口 () ” 程序构建窗口 :
具体案件创建的代码是
在构建窗口时,我们只需根据个案情况指定一个值;如果需要更多信息,请单击以下链接。
详情见:
(5)显示窗口
当您创建了一个窗口时, 您可以使用 ShowWindows () 函数来用代码显示它 。
输入 hWnd 给待发窗口的控点, nCmdShow 指定窗口的显示方式, 您可以指定 WinMain () nCmdshow 函数的值, 输入 hWnd 给待发窗口的控点, nCmdShow 指定窗口的显示方式, 您可以指定 WinMain () nCmdshow 函数的值 。
由于“显示窗口”方法的实施优先级较低, 当系统忙于其他操作时, 窗口不会立即显示, 但调用功能“ 更新窗口”( Windows) ” 将窗口的代码立即显示为“ 显示窗口”( Down Windows () ) 方法的实施优先级较低, 当系统忙于其他操作时, 窗口将不会立即显示为“ 更新窗口( Windows) ”, 而调用功能“ 更新窗口”( Windows)( ) 将立即以代码显示窗口 。
同时,“更新Window () ” 方法向窗口进程发送 WM_PAINT 信息, 以便重写窗口客户区 。
(6)消息循环
信息控制机制是Windows操作系统的基础。系统为应用程序创建信件队列 。和从他们得到的信息, 程序不断从信息队列中提取出来。并将其发送到窗口函数,以便进一步处理。函数 GetMessage () 用于使用 " 先出先出 " 原则逐个从应用程序的邮件队列中抓取信件 。然后把它放在一个组合组合的框架里。
让我们来看看 GetMessage () 函数的结构 :
LPMSG IpMsg是一种数据储存格式。收到的数据保存在 lpMsg 指针中。要过滤信件, 请使用 GetMessage () 方法 。例如,在定义HWND hWnd时,该系统只能接收 hWnd 窗口的信息。如果参数是 NULL( 表示它是空的),就是什么都没有),GetMessage () 程序随后读取应用程序线索中所有窗口的信件队列中的数据 。过滤由 WMSGFiltermin 和 wMSGFilterMax 处理。GetMessage () 只能接收 wMsgFiltermin 和 wMsgFilterMax 之间的信息 。如果WMSGFiltermax和WMSFilterMax都是零, 那么它们就是零。因此,必须收到所有来文。
让我们来看看我们怎样才能做到这一点。 为了获取信息, 程序使用一个时间循环。 代码如下 :
为了适应键盘输入要求, TranslateMessage () 方法将虚拟关键信息转换为字符信息。
将信件分配到窗口的过程由方法 ServeMessage () 处理 。
只有在方法 GetMessage () 收到 WMUIT 后返回零值时, 应用程序才会退出信件循环 。
有关GetMessage () 方法的更多信息的链接可在此找到 : Link 。
(7)窗口函数
当程序接收信件时, 它会处理窗口函数, 而窗口函数决定应用程序对收到的各种信件的反应和处理, 并使用代码 :
Calbak WndProc () 是程序定义的回声函数, 用于处理提交窗口的信件。 收到的信件在这里处理并作出适当反应 。
HWND hwnd 表示接收信件窗口的控件。 如果您调用相同的函数, 控件值相当于 CreateWindow () 返回的值 。
WNDCLASS生产了几扇窗户,之后hwnd承认了某种形式。识别表的价值是 UINT 电文。
WPARAM WPARAM、LPARAM IPARAM和WPARAM WPARAM是32位信息的额外信息参数。
通常情况下, 程序不会直接引用窗口信件处理器, 而是系统会引用窗口信件处理器功能。 如果程序想要引用自己的窗口程序, 它可以通过引用字母SendMessage () 来这样做 。
窗口函数使用开关和大小写结构处理信息,而开发者只需在基于信息的案件语句中创建正确的程序即可。
在处理信件时, 窗口信件处理器必须返回零值 。
WM_DESTROY 电文是在窗口关闭时发送的,通常在案件语句信件处理程序中处理。通常,应用程序调用功能PostQuitMessage () 以下列原型对该电文作出答复:
PosrQuicMessage () 向程序发送 WMUIT 信息, 并要求程序退出系统 。
窗口信件处理器未处理的任何信件应发送到 Window 方法 DefWindowProc (), 由 DefWindowProc () 返回的值必须由窗口信件处理器返回 。
我们只是对这里发生的一切有一个初步的理解。。
因为我的水平有限 有些事情我不明白 我无法分辨 我害怕被误导 我甚至不确定这是否是个可怕的主意
这是WNDPROC(WNDPROC)的对等功能。
在 DhanText () 上有更多消息。
以下是BeginPaint () 上的更多消息。
GetClientRect () 指出这一点。
EndPaint () 是点 。
PostUitMessage () 是一个函数 。
那么,关于Def Windowproc (: ) :
以下是我给你的: 整个链接。
四.实践
说完这番话之后,让我给你们一些实践。
运行结果如下:
注意: 您可能发现特定代码格式没有被查看; 它是一个版本, 主要是关于 SAL 的版本, 您可以点击链接, SAL 可以看到它 。
五.结语
哎。历时差不多一天半,终于写完了!我完事后,我筋疲力尽了!!如果你真的是认真的你会发现,越到后面,我写作时描述的这种气氛正在恶化。没办法啊,上午上完体育课,晚饭后我一直不停地写下来好累,然而,无论我多么疲惫,我都必须完成这个任务。因为男人不能说不行!。当我完成后,我满足了因为我完成了以前从未做过 也从未想过会做的事成就感还是有的。博客写作仍然很有趣。这不仅将使我能够巩固和扩大我的知识。挺高我的能力,也可以帮助到大家,为大家解答疑惑。我的第一个博客即将结束。写回文件的过程一直很困难。有激动的时候,也有低落的时候,当你下来,你可以做一些运动 和听音乐。挺好听的),结束了。结束了?不可能的,我会继续努力,对我来说,这是一个新的开端。我要学会改变自己,我不知道我该怎么办, 但我不确定我该怎么办, 但我不确定我该怎么办, 但我不确定我该怎么办, 但我不确定我该怎么办,我的历史对我来说可能有点困难然而,我认为,如果我努力工作,我就会取得成功。努力提升自己,在我心中,我知道我能实现这一目标。还有,我会根据上课日程更新的所以,可不可以点个赞,关注一下我呀,您也可以在批注区域留下标记 。有了你们的支持,我才会走的更远!如果有什么问题,欢迎大家提问!最后,感谢大家!谢谢!我们后会有期!
(声明:我是新生,这是我第一次在博客上写作,而且总会有错误。如果你注意到错误,请尽快通知我,以便我修复。非常感谢。)
相关新闻
- 2022-08-04 WPF的由来
- 2022-08-04 Win11勒索软件防护怎么打开?Win11安
- 2022-08-04 Windows系统jdk的配置
- 2022-08-04 Windows10 OneNote怎么重新登录?如何重
- 2022-08-04 超好用的 Windows 效率工具推荐
- 2022-08-04 Windows如何在CMD或PowerShell中配置代理
- 2022-08-04 powershell和cmd对比
- 2022-08-04 【QT】Windows下QT下载安装
- 2022-08-04 windows下 C++ 实现类属性的get和set方
- 2022-08-04 Win11快速助手在哪里?Win11打开快速
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
