17
大大 Visual C++ 大大大大 Windows 大 Visual C++ 大 大大大大大 西 大大大大大 西 大大大大大大大大大 大大大大大大大大大 http:// ctec.xjtu.edu.cn

大学Visual C++案例教程

Embed Size (px)

DESCRIPTION

大学Visual C++案例教程. 第一讲 Windows 与 Visual C++ 基础 西安交通大学 计算机教学实验中心 http://ctec.xjtu.edu.cn. 教学目标. Windows 图形用户界面 典型的 Windows 应用程序结构 MFC 程序的基本结构 简单的 Visual C++ 程序:窗口客户区输出. 授课内容. 1.1 Windows 的用户界面对象 1.2 Windows 编程的主要概念 1.3 Windows 应用程序类型 1.4 MFC 应用程序框架 1.5 MFC 编程 1.6 在窗口的客户区输出文字和图形 - PowerPoint PPT Presentation

Citation preview

Page 1: 大学Visual C++案例教程

大学 Visual C++ 案例教程

第一讲 Windows 与 Visual C++ 基

西安交通大学西安交通大学计算机教学实验中心计算机教学实验中心http://ctec.xjtu.edu.cn

Page 2: 大学Visual C++案例教程

教学目标 Windows 图形用户界面

典型的 Windows 应用程序结构

MFC 程序的基本结构

简单的 Visual C++ 程序:窗口客户区输出

Page 3: 大学Visual C++案例教程

授课内容 1.1 Windows 的用户界面对象 1.2 Windows 编程的主要概念 1.3 Windows 应用程序类型 1.4 MFC 应用程序框架 1.5 MFC 编程 1.6 在窗口的客户区输出文字和图形 1.7 使客户区重绘 1.8 Windows 数据类型 1.9 Windows 变量的命名规则 程序设计举例

Page 4: 大学Visual C++案例教程

1.1 Windows 的用户界面对象

Page 5: 大学Visual C++案例教程

1.2 Windows 编程的主要概念

事件驱动

设备无关性 (设备独立性 )

资源管理

Page 6: 大学Visual C++案例教程

1.3 典型的 Windows 应用程序结构

控制台应用程序( C++ )

基于框架窗口的应用程序 (结构简单、编程复杂)

基于对话框的应用程序

基于文档 / 视图结构的应用程序 (功能全面、结构复杂、编程简单)

Page 7: 大学Visual C++案例教程

1.4 应用程序框架基础类库 MFC ( Microsoft Foundation Class )

Page 8: 大学Visual C++案例教程

1.5 MFC 编程 Project 类型: MFC AppWizard(exe)

Step1 : Single document Step2~6 :默认设置

MFC 编程特点: 应用程序框架提供一个实现通用基本功能可运行的空

程序,其他功能由程序员去实现了。 理解应用程序框架的程序结构,尤其是能找到加入代

码的地方并加入适当的代码,是使用应用程序框架编程的第一步。

程序员只增加所需的代码,一般不删除系统生成代码

Page 9: 大学Visual C++案例教程

1.6 在窗口的客户区输出文字和图形 View 类中的 OnDraw() 函数添加代码

void CMyView::OnDraw(CDC* pDC){

CMyDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data herepDC->TextOut(15,50,"Hello world!");

}

Page 10: 大学Visual C++案例教程

主要绘图函数 CDC 的成员函数

文字信息显示 : TextOut(int x, int y, LPCTSTR lpszString)

画线 : MoveTo(int x, int y) , LineTo(int x, int y)

画矩形 : Rectangle(int x1, int y1, int x2, int y2)

画椭圆 : Ellipse(int x1, int y1, int x2, int y2)

CWnd 的成员函数 获取客户区的坐标 : GetClientRect(LPRECT lpRect)

Page 11: 大学Visual C++案例教程

1.7 使客户区重绘 OnDraw 函数的调用:

系统自动调用:当窗口生成、用户改变了窗口尺寸,或者当窗口恢复了先前被遮盖的部分时

其他函数调用:当程序中某个函数修改了数据而需要重绘窗口时,需要调用 CWnd 类的 Invalidate 或 InvalidateRect 成员函数触发Windows 的 WM_PAINT 消息,来引起对 OnDraw 的调用。

这两个函数的原型是:

void Invalidate( BOOL bErase = TRUE );void InvalidateRect( LPCRECT lpRect, BOOL bErase = TRUE );

Page 12: 大学Visual C++案例教程

1.8 Windows 数据类型关键字 类 型 说明(等价的类型)BOOL 逻辑类型 intCHAR 字符 charDOUBLE 双精度 doubleFLOAT 浮点数 floatHANDLE 句柄 voidINT 整数 intLONG 长整数 longVOID 空的、无定义 voidWCHAR 双字节码 unsigned shortWPARAM 消息参数 UINTLPARAM 消息参数 LONGLRESULT 消息返回值 LONGHINSTANCE 实例句柄 unsigned longHWND 窗口句柄 unsigned longHDC 设备环境句柄 unsigned longTCHAR 字符 charLPSTR 字符指针 char *LPCSTR 常量字符指针 const char *LPTSTR 字符指针 TCHAR *LPVOID 无类型指针 void *

Page 13: 大学Visual C++案例教程

主要结构体类型和常用类

CString 类 提供了丰富的字符串操作

格式化输出 int x = 0;

double y = 0.36;

CString s;

s.Format("Variable x = %d, y = %lf", x, y);

Page 14: 大学Visual C++案例教程

主要结构体类型和常用类

点:结构体类型 POINT 和 CPoint 类 long 型数据成员 x 、 y 表示坐标

长、宽尺寸:结构体类型 SIZE 和 CSize 类 int 型数据成员 cx 、 cy 表示长、宽

矩形区域:结构体类型 RECT 和 CRect 类 long 型数据成员 left 、 top 、 right 、 bottom 表示 4 个边的位置

颜色: COLORREF ( BYTE bRed, BYTE bGreen, BYTE bBlue )

Page 15: 大学Visual C++案例教程

1.9 Windows 变量的命名规则 匈牙利( Hungarian )命名法 :

标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类型。

c 字符( char ) n 整数( integer ) f BOOL

h HANDLE (无符号 int ) m_ 类成员变量

前缀以后是一个或者多个第一个字母大写的单词,指出程序中该对象的用途。

例如, m_nCount 表示一个计数器的类成员变量,数据类型是整型。

Page 16: 大学Visual C++案例教程

程序设计举例

例 1-1 SDI版的“ Hello World!”

• 学习使用 MFC 应用程序框架进行编程

• 客户区显示文字和图形

Page 17: 大学Visual C++案例教程

学好程序设计语言的唯一途径是

你的编程能力与你在计算机上投入的时间成

结 束 语