C++复习 2.0 Windows编程

本文深入讲解Windows编程的基础概念,包括句柄、实例、资源、窗口、消息管理等关键要素,阐述了Windows应用程序如何通过句柄访问资源,以及消息驱动机制如何实现用户交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、句柄

句柄:Windows对绝大多数对象的引用都是通过句柄来进行的,通过它可以访问各种资源。句柄不是地址指针,它是作为系统内部表的索引值来使用的。Windows API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。

一个窗口打开后,内存会变化,但是句柄不会,每一次打开句柄会不一样

指针以P或LP开头,句柄以H开头

 

2、实例:

一个实例代表一个可执行程序在内存中的拷贝。

 

3、资源:

一个Windows程序,往往有菜单、工具条、对话框、位图、图标、加速键(键盘快捷键)、字符串等,这些元素都被称为资源。

资源是在资源文件(.RC)中定义的一个只读数据对象,由应用程序向导创建并可手工添加与修改。

装载资源:Loadxxxx比如LoadIcon

 

4、WinMain()

我们常常在Windows程序的入口WinMain()处将实例句柄保存在全局变量中。

程序的入口点是WinMain(),函数返回值是一个整数

 

5、回调函数

回调函数,顾名思义,就是写好了等着别人来调用的函数。它们只能通过Windows操作系统来调用,这些函数我们可以根据自己的需要设计,但不能直接调用它们。

 

6、由于Windows应用程序可能并行地执行多次,因而可能出现同一个应用程序的多个窗口同时存在的情况,Windows系统将应用程序每一次执行称为该应用程序的一个实例,并使用一个实例句柄来标识它。

 

7、对话框

是一种常用的输入输出界面,是一种特殊的窗口。它的主要功能是输出信息和接收用户的输入。

 

8、客户区

是窗口中最大的一块空白矩形区域,它是用户与系统进行交互的主要区域,一般用于显示应用程序的输出。

 

9、标题栏

位于窗口顶部,其中显示的文本一般用于标注应用程序的名称。

 

10、菜单栏

菜单栏用户最熟悉,它位于标题栏的下方,横跨窗口,上面列出了应用程序支持的大部分功能。

 

11、工具栏

工具栏位于菜单栏下方,上面的位图按钮代表最常用的命令。

 

12、状态栏

状态栏位于窗口底端,用于输出菜单的详细说明和其它一些提示信息。

 

13、窗口

窗口是屏幕上与一个应用程序相对应的矩形区域,关闭了一个窗口后,相应的应用程序就被关闭。窗口是Windows应用程序基本操作单元,是应用程序与用户之间交互的接口环境,是系统管理应用程序的基本单位。

 

14、消息管理

消息管理是由 Windows完成的,应用程序有两种获得消息的方式:

1.应用程序调用Windows提供的获取消息函数,如GetMessage();

2.由Windows调用程序员提供的一种特殊函数——回调函数。

 

15、消息驱动

消息驱动,在别的程序设计语言中又叫事件驱动:在执行过程中,如果用户需要输入什么参数或用户需要作出选择,程序将等待用户的输入。

应用程序与操作系统打交道的例子就是消息传递

 

16、加速键

加速键,又称键盘快捷键,一个加速键就是一个按键或几个按键的组合,它用于激活特定的命令。

 

17、菜单消息

当用户选择了一个菜单选项后,就会向应用程序发送一个命令消息WM_COMMAND,窗口函数通过参数wParam来确定是哪一个菜单选项发出的。

 

18、设备环境

封装了 绘图所需要的操作,是用户编写图形和文字处理程序必不可少的

 

19、绘图模式

当绘制一条线段时,该线段的颜色不仅取决于画笔的颜色,而且也取决于该线段所在显示区域的颜色

 

20、画刷则是给图形内部着色的

 

21、模态对话框:对话框关闭之前,用户无法在应用程序的其它窗口中进行工作的对话框称为模态对话框。

 

22、控件是一种子窗口,应用程序用它来与其它窗口一起完成简单的输入输出操作。他们是Windows友好用户界面的重要组成部分。

23、对话框模板定义了对话框的特性(比如大小、位置和风格)以及对话框中每个控件的类型和位置

24、

 

怎么画线(五个步骤):
1、获得CDC、画笔对象

2、初始化画笔对象

3、使用selectObject选择画笔

4、绘制内容

5、恢复画笔

 

25、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值