☺创建属于自己的窗口

==================

创建窗口前的准备

在创建窗口前我们先来熟悉几个名词, 这些名词现在可以暂时不去透彻的进行理解, 只需要印象中知道有这么回事就行。

1>. 窗口

"窗口"这个我们都已经十分熟悉了, 在Windows中, 一个应用程序窗口上一般会在标题栏上显示程序的名称, 紧挨着标题栏的菜单栏, 或许还会有状态栏、滚动条等其他"装饰品"。

2>. 控件

  在一些应用程序中, 我们经常可以在程序的界面上(窗口)看到一些按钮(Push Button)、文本框(Text Box)、列表框(List Box)、滚动条(Scroll Bar)等, 这些对象通常被称为控件, 在 Windows程序设计 中, 还被称为"子窗口"、"控件窗口"或"子窗口控件"。

3>. 窗口类

  在建立一个窗口前, 我们必须先注册一个"窗口类"(Windows Class), 接触过面向对象的朋友应该会首先想到面向对象当中的"类", 但是, 这里"窗口类"中的"类"并不是指面向对象当中的那个"类"。

  在这里我们可以把"窗口类"理解为一个结构体, 结构体的成员就是窗口的一些属性, 例如窗口的标题是什么、窗口使用什么样的小图标以及窗口的风格之类的属性, 一个窗口就是一个结构体的对象, 结构体成员的属性决定着窗口的属性。

4>. 消息循环

  在Windows程序设计中, 消息循环是个不得不提的概念, Windows操作系统是以消息驱动的, 消息队列是指在一个应用程序运行时, Windows操作系统会为该应用程序建立一个"消息队列", 这个消息队列用来存放该程序可能创建的各种窗口的消息, 当用户对应用程序进行操作时, 例如点击一个按钮、调整下窗口的大小等, 此时Windows会立即把这一消息告诉应用程序, 使应用程序能作出相应的动作。

5>. 窗口的过程函数

  当一个窗口建立之后, 就可以从Windows那里不断的接收到Windows发来的消息, 接收到消息后我们就需要一个函数来处理这些消息, 可以简单的理解为, 这个用来处理接收到的消息的函数就称为窗口过程函数或者回调函数。

下面我们来尝试着看一个创建一个基本窗口的代码。

尝试创建自己的窗口

代码如下:

--------------------

--------------------

  先简单介绍这段代码, 在主函数WinMain中的窗口类对象wndclass我们定义了窗口的相关属性, 尝试注册窗口类并调用CreateWindow创建窗口, 创建完成后用ShowWindow让窗口显示出来, 我们还使用了个while用来从消息队列里获取并分发消息给程序, 我们还定义了一个过程函数WndProc用来处理系统发来的消息。

  编译运行后, 如果没有错误将首先看到一个窗口建立成功与否的对话框, 当创建窗口失败时弹出一个错误对话框并关闭程序。

  当窗口被创建时首先Windows会发给我们一条创建完成的消息"WM_CREATE", 在我们的消息处理函数WinProc中有switch-case语句对该消息进行了处理, 就是弹出一个窗口创建完成的对话框。

  同样, 我们还处理了当窗口的客户区(内容部分)被改变时发来的的"WM_PAINT"消息进行了处理, 让"Hello, 这是我创建的窗口!"始终显示在窗口中心。

"WM_LBUTTONDOWN"消息是当用户在客户区按下鼠标左键时发来的消息, 我们作出相应的动作为弹出一个鼠标左键被按下的对话框。

  当用户点击窗口的关闭按钮时, "WM_DESTROY"消息就会发来, 我们作出的动作是弹出"关闭程序!"的对话框并且退出程序。

今天的学习先到这里, 明天我们详细学习下整个创建窗口的代码。

--------------------

我是一名从事了10年开发在退休边缘垂死挣扎的高龄程序员,最近我花了一些时间整理了一个完整的学习C语言、C++的路线,项目源码和工具。对于想学习C/C++的小伙伴而言,学习的氛围和志同道合的伙伴很重要,笔者推荐一个C语言/C++编程爱好者的聚集地C/C++编程项目开发学习,素材笔记,项目源码等吗,还有新鲜出炉的学生成绩管理系统等!

欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。工作需要、感兴趣、为了入行、转行需要学习C/C++的伙伴可以一起学习!”

关注我,带你遨游代码世界!

下面这些是C/C++能做的 :

服务器开发工程师、人工智能、云计算工程师、信息安全(白客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等!

最后分享一张C/C++编程学习路线图给爱学习的小伙伴们

showwindow 窗口不弹出_C语言Windows程序设计 - 【第一个属于自己的窗口】!相关推荐

  1. drcom上网登录窗不弹出_上网登录窗口不弹出怎么办

    上网登录窗口不弹出怎么办 导读:小编根据大家的需要整理了一份关于<上网登录窗口不弹出怎么办>的内容,具体内容:很多时候上网都要输入登录账号和密码经验证以后才可以上网,但是有的时候电脑不知道 ...

  2. 中年人学C语言Windows程序设计,20子窗口的创建

    今天, 我们要学习的就是 子窗口控件 的使用. 在其他一些 Windows应用软件上我们经常能够看到一些大致相同的按钮.复选框.组合框.列表框等控件, 这些控件很有可能就是使用 标准子窗口控件 来实现 ...

  3. 中年人学C语言Windows程序设计,3 窗口中文本的输出TextOut

    中年人学C语言Windows程序设计,3 文本的输出TextOut 函数功能 TextOut 函数使用当前选择的字体.背景颜色和文本颜色,将一个字符串绘制于窗口的指定位置. API 函数原型: 注释: ...

  4. C语言Windows程序设计 - 【第一个属于自己的窗口】!

    ☺创建属于自己的窗口 ================== ۞创建窗口前的准备 在创建窗口前我们先来熟悉几个名词, 这些名词现在可以暂时不去透彻的进行理解, 只需要印象中知道有这么回事就行. 1> ...

  5. jquery 弹出窗口_jQuery弹出窗口和工具提示窗口动画效果

    jquery 弹出窗口 In this tutorial, we are going to discuss about a jQuery plugin for responsive and acces ...

  6. 每次电脑开机弹出c语言框,【xp开机弹出documents】开机跳出documents_开机弹出c documents-系统城...

    2015-05-30 16:20:48 浏览量:1891 有不少的windows xp系统用户在操作使用电脑时遇到了一个问题,那就是开启电脑,来到系统界面就会弹出"找到新的硬件向导" ...

  7. vc 只有顶级窗口可以弹出窗口_如何在Mac上允许弹出窗口

    通常,我们尝试避免弹出窗口,但是有时您需要让它们通过.下面这样做的方法. 由于浏览器阻止了弹出窗口,您是否在macOS上遇到网站问题?幸运的是,您可以在计算机上的主要浏览器(例如Safari,Chro ...

  8. 中年人学C语言Windows程序设计,9 窗口绘图:直线的画法

    标题中年人学C语言Windows程序设计,9 窗口绘画:直线 MoveToEx函数 函数功能: MoveToEx 函数将当前绘图位置移动到某个具体的点,同时也可获得之前位置的坐标. API 函数原型: ...

  9. 打开360安全卫士时弹出错误:windows找不到文件 regedit.exe

    问题:奇虎360安全卫士打开时弹出错误:windows找不到文件" regedit.exe"                         是怎么回事? 回答:是寻找不到注册表编 ...

  10. javafx一个stage窗口弹出,主窗口跟随弹出(聚焦二级窗口时,在二级窗口后面显示主窗口)

    javafx编写的程序存在隐藏程序后打开二级窗口,只有二级窗口弹出(图1),而非二级窗口与主窗口一起弹出(图2),解决方法如代码 图1 图二 方法一:当前窗口出现后置顶主窗口,再置顶当前窗口,会出现闪 ...

最新文章

  1. 【Windows 逆向】Cheat Engine 数据挖掘搜索方法和技巧 ( 数值类型选择 | 字符串数值类型选择 | 全部数值类型模糊选择 )
  2. 用Tableau制作滚动时间轴(下)
  3. 在ASP.NET使用javascript的一点小技巧
  4. 7-10 逆波兰表达式求值 (20 分)(c语言)(数据结构)
  5. cocos2dx实现象棋之运动
  6. 使用Appium进行Android自动化测试遇到编译不成功的错误处理
  7. LayaAir 项目开发使用TiledMap注意
  8. 电气工程和自动化哪个专业就业前景好?
  9. 语音信号处理、语音特征提取
  10. 计算机科学与技术专业课程简介
  11. git代理设置与取消
  12. 一些又用的国内著名期刊
  13. 五轴转台哪家质量比较好?
  14. .NET开发资料 dotnet 学习的站点
  15. STM32 HAL WS2812B PWM+DMA控制
  16. OSI七层网络模型介绍
  17. BIT-MiniCC——parser(lab5语法分析器)
  18. 虚拟机VMware 安装centos、常规配置、共享文件等
  19. 计算机制作校徽 的 体会,制作校徽_课程中心_3D One官网www.i3done.com
  20. C# DocX操作Word文档(.docx)

热门文章

  1. @Resource注解
  2. Spring中Resource接口详解
  3. 小飞升值记——(13)
  4. web前端全栈0基础到精通(祺)10
  5. KGB知识图谱在智能问答方向发挥技术特色
  6. 详解win7升级win10原来的软件还能用吗
  7. excel验证身份证号码是否正确
  8. 顺势腹式呼吸还是逆势
  9. JavaScript广告图片跟随滚动
  10. October CMS