9.Windows编程入门:C/C++创建窗口程序详解

1.前言

第一章我曾说过,C/C++ 是无所不能的,但若你只学C/C++本身,就又会发现自己什么都干不了。

所以从这章开始,我们就正式开始学习一些特定方向的知识,从最熟悉的开始,比如我们用的最多的windows平台上的软件,都是怎么开发出来的?

这就涉及到了windows平台的软件开发相关知识。

2.windows编程介绍

所谓windows编程,就是指我们写的程序代码最终只能在windows系统上运行,该程序乃至源代码在其它平台无法运行以及编译(比如安卓、linux、mac等等)。

而之所以我们在windows编程中写的程序无法在其它系统中运行,就是因为我们调用了很多win API函数。

比如上一章我们用到的URLDownloadToFileA,这个强大的函数就是windows系统提供给我们用的,而其它平台就没有这个函数。

所以总结一下就是,C/C++语言本身是跨平台、无所不能的,可如果你的代码中包含了某个平台所特有的函数,那么你所写的代码,就只能在该平台编译运行。

所谓windows编程,指的就是使用win API的过程,通过win API进行windows系统上的程序开发。

目前windows系统的总体市场占有率依旧还是很高,并且其生态已经相当完善了,相信即使再过十年二十年,windows都很难被淘汰,所以了解一下windows编程对你来说应该是很有帮助的。

windows系统是微软旗下的产品,同样最强IDEVS,也是微软旗下的产品,所以我们用VS开发windows程序是非常方便的,两者天然适配。

3.从零写一个windows窗口

windows程序最大的特色自然就是窗口了,前面我们用EGE库写的推箱子小游戏,其实也是封装的win API函数,所以只能在windows平台使用。

这次我们就不用EGE库,而是用最底层的win API来开发一个窗口,来看一看我们当初用EGE几个函数就能完成的任务,实际是怎么实现的!

3.1 建立窗口的过程

想要在windows系统上创建一个窗口,可以简单划分为三个步骤:

  1. 向系统注册一个窗体类
  2. 根据窗体类创建窗口
  3. 进入消息循环

虽然看上去很简单,但由于其中涉及到了大量Win API函数,所以新手一般刚开始学习的时候都会感到异常的痛苦。

接下来就开始详细介绍具体各个步骤。

3.2 建立项目

还是老规矩,在解决方案中新建项目day9-windows,不过不是控制台应用了,而是窗口应用,我们需要选择windows桌面向导来帮我们创建一个window程序:

image-20231205161819649

这里选择桌面应用程序,以及空项目: