VC++面向对象与可视化程序设计 学习笔记

第1章 Windows应用程序基础

一、Windows应用程序的特点

1、面向对象 --- 针对Windows应用本身,而不是设计思想、编程方法或者语言。

2、具有消息传递机制和事件驱动机制。

两种机制:消息循环和事件响应。VC++采用的是消息队列方式进行处理。

Windows产生的消息 ----------->消息队列---------(WinMain函数)------------->将消息传递给窗口函数的相应过程处理。

二、可视化编程

三、关于API

(一)第一部分

1、窗口

2、事件驱动

3、句柄

4、消息

 

(二)Windows应用程序常用消息

1、WM_LBUTTONDOWN产生点击鼠标左键的消息

2、WM_KEYDOWN按下一个非系统键时产生的消息

系统键是指实现系统操作的组合键,例如Alt与某个功能键的组合以实现系统菜单操作等,非系统键就是不与Alt联用的键。

虚拟码是以标识按下或释放的键。

lparam记录了按键的重复次数、扫描码、转移代码、先前键的状态等信息。

相似的消息还有WM_KEYUP,在放开非系统键时产生的消息。

3、WM_PAINT

四、Windows应用程序组成及编程步骤

1、应用程序的组成

2、源程序组成结构

Windows应用程序基本框架:(1)入口函数|WinMain (2)窗口函数 | WndProc

2.1 WinMain函数

(1)功能

(2)窗口类的初始化

(a) 窗口类定义 --- 通过给窗口类数据结构WNDCLASS赋值完成,该数据结构中包含窗口类的各种属性。

调用GetStockObject函数获取系统提供的背景刷

HBRUSH GetStockObject(int nBrush);

(b) 注册窗口类

Win系统本身提供部分预定义的窗口类,程序猿也可以自定义窗口类,窗口类必须先注册后使用。

窗口类的注册由函数RegisterClass()实现。

RegisterClass(&wndclass); //wndclass为窗口类结构

RegisterClass函数的返回是布尔值,注册成功则返回真。

(c) 创建窗口实例

创建一个窗口类的实例由函数CreateWindow()实现

(d) 显示窗口

窗口类的显示,由ShowWindow和UpdateWindow函数实现。

窗口显示形式标识,ShowWindow(hwnd,nCmdshow); // nCmdshow

应用程序调用ShowWindow函数在屏幕上显示窗口。

(3)消息循环

// 消息循环常见的格式
MSG Msg;
...
while(GetMessage(&Msg,NULL,0,0))
{
    TranslateMessage(&Msg);  // 将消息的虚拟键转换为字符消息
    DispatchMessage(&Msg);    // 将消息传送到指定窗口函数
}
// 函数GetMessage形式为
GetMessage(
lpMSG,            // 指向MSG结构的指针
hwnd,             // 从哪一个窗口获取这个消息
nMsgFilterMin,    // 用于消息过滤的最小消息号值
nMsgFilterMax     // 用于消息过滤的最大消息号值 
)

 2.2 窗口函数WinProc

数据类型:LRESULT:消息处理结果的返回值的数据类型,实际上是LONG。

CALLBACK:表示这个函数是给系统调用的,也称为“回调”。

3、数据类型

4、一些重要的数据结构

(1)MSG结构

(2)WNDCLASS结构

(3)RECT结构

五、应用程序举例

1、创建应用程序框架

第2章 Windows的图形设备接口及Windows绘图

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好学松鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值