第7讲 | 如何建立一个Windows窗体?
蔡能
该思维导图由 AI 生成,仅供参考
今天,我要跟你分享开发 Windows 游戏的第一步,建立窗体。
上一节,我讲解 Python 和 C++ 的编译器,以及它们各自对应的 IDE 该如何选择,并且测试了 C/C++ 的运行,编译了一个 Lua 静态库。准备工作基本上算是完成了。
如果你有一些编程功底,应该知道建立 Windows 的窗体所需的一些基础知识。如果你经验稍丰富一些,还应该知道 Delphi、C++Builder、C# 等等。这些工具都可以帮助你非常方便地做出一个空白窗体,但是这些窗体并没有游戏的绘图系统,所以它们只是“建立了一个标准窗体”而已。因此,虽然建立窗体是我们这一节的内容,但我们要探讨的是,在窗体背后,Windows 系统做了什么。
Windows 窗体由哪些部分构成?
我们常规意义上的 Windows 窗体,由下列几个部分组成。
标题栏:窗口上方的鼠标拖动条区域。标题栏的左边有控制菜单的图标,中间显示的是程序的标题。
菜单栏:位于标题栏的下面,包含很多菜单,涉及的程序所负责的功能不一样,菜单的内容也不一样。比如有些有文件菜单,有些就没有,有一些窗体甚至根本就没有菜单栏。
工具栏:位于菜单栏的下方,工具栏会以图形按钮的形式给出用户最常使用的一些命令。比如,新建、复制、粘贴、另存为等。
工作区域:窗体的中间区域。一般窗体的输入输出都在这里面进行,如果你接触过 Windows 窗体编程,就知道在这个工作区域能做很多的事情,比如子窗体显示、层叠,在工作区域的子窗体内进行文字编辑等等。你可以理解成,游戏的图形图像就在此处显示。
状态栏:位于窗体的底部,显示运行程序的当前状态。通过它,用户可以了解到程序运行的情况。比如的,如果我们开发出的窗体程序是个编辑器的话,我按了一下 Insert 键,那么状态栏就会显示 Ins 缩写;或者点击到哪个编辑区域,会在状态栏出现第几行第几列这样的标注。
滚动条:如果窗体中显示的内容过多,不管横向还是纵向,当前可见的部分不够显示时,窗体就会出现滚动条,分为水平滚动条与垂直滚动条两种。
窗体缩放按钮:窗体的缩放按钮在右上角,在窗体编程中属于 System 类目。这些缩放按钮依次为最小化、最大化和关闭按钮。
我们来看一张标准的 Windows 窗体截图,这个软件名是 Notepad++。
这是 MSDN 上对于窗体结构的说明:
使用 C/C++ 编写 Windows 窗体
接下来,我将使用 C/C++IDE 来编写代码,完成一个默认窗体的开发,并让它运行起来。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了使用C/C++和Python编写Windows窗体的基本流程。首先详细解释了Windows窗体的构成,包括各个部分的功能和代码示例。针对C/C++编写,文章给出了注册窗口类、创建窗体、消息处理以及窗体移动等操作的代码示例,让读者了解如何使用C/C++编写并显示一个标准的Windows窗体。对于Python编写,介绍了使用Tinker库建立一个窗体的示例代码,并指出了窗体编程的细节。此外,还提到了使用OpenGL接口编写游戏时,窗体可以成为游戏屏幕窗体的方法。总的来说,本文为读者提供了基于C/C++和Python的Windows窗体开发方法,适合对Windows窗体编程感兴趣的读者阅读学习。文章内容涵盖了窗体结构、消息循环、脚本语言编写窗体等方面,为读者提供了全面的技术指导。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学游戏开发》,新⼈⾸单¥59
《从 0 开始学游戏开发》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(16)
- 最新
- 精选
- 壬大师老师,python能开发手机游戏吗,游戏引擎用的是pygame吗?
作者回复: 目前没有成熟的python游戏引擎支持手机游戏开发。
2018-06-111 - @浩用QT写窗口如何,MFC有点晦涩难懂。
作者回复: 我写的不是MFC
2018-06-091 - 立春C++用的是MFC了……
作者回复: mfc 全称 microsoft foundation classes,微软基础库,建立窗体可以使用 mfc,也可以使用ATL等等,但基础代码还是windows api
2018-06-091 - 宋桓公最大化,加无边框等于全屏
作者回复: 这是一种方式,没错的
2018-06-27 - 壬大师老师,那手游的开发目前也都是C++咯?像简单游戏比如手机棋牌类游戏一般用什么语言?
作者回复: 不都是。原生开发,苹果会用obj c, 安卓java,或者也有封装后生成的,比如cocos系列的语言
2018-06-13 - 呵呵用c++建立窗体,默认用的什么图形库?
作者回复: windows api
2018-06-09 - Geek_King@技术爱好者c++窗口那段程序,编译时需加上-mwindows或者-lgdi32,又或者在建工程的时候选择建立gui程序🙄🙄🙄2018-06-1510
- GSpython3 要用小写的tkinter2018-07-284
- 呵呵要是能提供远嘛就好了,跟着后面敲太麻烦2018-06-094
- 清新灬小柠檬直接将显示器的大小当作参数传到绘制窗体的函数中?2019-06-241
收起评论