精品IT教程Windows系统开发教程最完整版教材课程

上传人:yuzo****123 文档编号:139693536 上传时间:2020-07-23 格式:PPT 页数:421 大小:5.27MB
返回 下载 相关 举报
精品IT教程Windows系统开发教程最完整版教材课程_第1页
第1页 / 共421页
精品IT教程Windows系统开发教程最完整版教材课程_第2页
第2页 / 共421页
精品IT教程Windows系统开发教程最完整版教材课程_第3页
第3页 / 共421页
精品IT教程Windows系统开发教程最完整版教材课程_第4页
第4页 / 共421页
精品IT教程Windows系统开发教程最完整版教材课程_第5页
第5页 / 共421页
点击查看更多>>
资源描述

《精品IT教程Windows系统开发教程最完整版教材课程》由会员分享,可在线阅读,更多相关《精品IT教程Windows系统开发教程最完整版教材课程(421页珍藏版)》请在金锄头文库上搜索。

1、Windows系统开发,主讲教师:郭迎春,计算机与信息工程学院,驱动程序开发 DDK、WDK、DriverStudio、Windriver 应用软件开发,C/C: 主流的开发工具为Visual C+,它以c语言为基础。 特点:代码执行效率高,Windows应用软件开发语言,Java: 适合开发基于Web的应用程序,Windows操作系统核心代码采用,Windows 运行机制,驱动,输 出,输 入,Windows 运行机制,函数,消息,注: 操作系统所能够完成的每一个功能都有一个函数与其对应,也就是说,操作系统把它能够完成的功能以函数的形式提供给应用程序使用,这些函数的集合就是Windows操作

2、系统提供给应用程序的编程接口(Application Programming Interface),简称Windows API。 例如:CreateWindow():创建一个窗口 应用程序 操作系统,调用函数,实现创建窗口的功能,消息:报告有关事件发生的通知,是一种数据结构 例如:鼠标单击窗口 鼠标单击事件发生 windows操作系统获取到这一事件,并将事件以消息的形式传递给应用程序 应用程序获取消息,并调用响应函数处理消息 Windows程序设计的核心就是消息的传递和处理,帮助文档:msdn 资料: 孙鑫vc+视频教学 VC技术内幕(可做参考),Visual C+开发环境,1,MFC应用程序

3、框架,2,基本事件处理,3,映射模式和滚动视图,4,MFC资源,5,ActiveX控件,6,动态链接库(DLL),7,多线程编程,8,文档与视图,9,数据库编程,10,Visual C+的编程方式,1,SDK: Software Development Kit,传统编程法,采用windows API 函数进行编程。,2,MFC: Microsoft Foundation Class,交互式的编程法,对API函数进行了封装,包含许多类。,1、Visual C+开发环境,File New,File New,2、MFC应用程序框架,File New Projects MFC AppWizard(ex

4、e),使用MFC应用程序生成向导创建Hello World程序,文档/视图结构体系支持:即是否支持文档/视图结构,否:不支持 标题文件:不支持,但预留接口 查看数据库不使用文件支持:支持 查看数据库使用文件支持:支持,注:复合文档是OLE(Object Linking and Embedding )的一项技术,没有,不需要 容器:例如,在Word中运行Excel程序,Word相对与Excel就是容器 微型服务器:例如,在Excel中的一些资源,其它程序可以调用,Excel就是服务器 完整服务器 容器和服务器,自动:例如在Word和Excel中都支持VB,可以在Word和Excel中用VB(确切

5、的说叫VBA)编程,而VC则不支持,要使VC支持,则要选中自动 ActiveX:第三方控件,与开发平台无关,选中相关项后,在左端会有图例显示,风格 源代码备注:例提示客户代码的书写位置 作为共享的DLL:运行时才添加mfc库 缺点:在没有安装VC的机器上不能运行 解决办法:将vc下相关的DLL文件拷贝到Windows文件夹中 作为静态的DLL:编译时所有用到的库都被链接。 缺点:程序较大,ChelloView:视类,可选择基类,用来显示文档数据并和用户交互 如果在第五步中选择MFC风格,则基类为CView类,若选择资源管理器风格,则为CListView类 例如,设计字处理软件,则要选择CEdi

6、tView类 ChelloDoc:文档类,用于管理文档数据 CMainFrame:框架类,用来产生应用程序的主框架窗口 ChelloApp:应用程序类,用来管理应用程序实例,放入口函数,在vc中将数据显示和数据本身分开 文档:数据,CDocument 作用:数据存储,加载等 视图:显示,CView 作用:数据显示,修改等,VC+的项目工作区窗口,运行,运行 VC工程文件夹下的文件 Debug:exe文件所在的位置 Res:资源文件夹 hello.cpp和hello.h:包含CExamApp类 helloView.cpp和helloView.h helloDoc.cpp和helloDoc.h M

7、ainFrame.cpp和MainFrame.h StdAfx.h:标准的全局函数定义,关键代码说明,Helloview.h: CHelloView类的定义,Private,Protected,Public,定义变量 定义函数,GetDocument(),#include “helloView.h” 构造函数:变量初始化 析构函数 PreCreateWindow():在窗口创建之前要做的工作,Helloview.cpp,OnDraw(CDC* pDC) CExamDoc* pDoc = GetDocument(); 获取文档的地址放在pDoc中,要使用文档中的数据则可以使用pDoc 例如,文档

8、中的x,则使用pDocx获取值 ASSERT_VALID(pDoc); 宏定义,确保上条语句的结果有效 CDC,DC:Device Context,即设备上下文或设备描述表或设备环境 引入原因: Windows不容许用户直接操作硬件,所以定义了一个抽象层DC,所有与绘图或显示相关操作封装在CDC类中,要访问显示设备就必须使用CDC类中提供的函数,应用程序,DC,硬件设备,例如:显示器、打印机等显示设备,GDI (图形设备 接口,进行 绘图工作),Device Context,绘图 工具,CDC* pDC CDC:封装了所有的绘制和打印函数 pDC为指向CDC类的指针,可以使用pDC访问CDC类

9、中的函数(pDC-) OnDraw函数被调用的情况: 程序运行后自动调用 窗口重绘之后,例如窗口的大小被改变、窗口被覆盖,Hello World程序,void CHelloView:OnDraw(CDC* pDC) CHelloDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); / TODO: add draw code for native data here pDC-TextOut( 0,0,hello world); ,起始点坐标,常用绘图函数,画点: SetPixel( int x1, int y1 , COLORREF crColor );

10、绘制线: MoveTo( int x1, int y1 ); LineTo( int x2, int y2 ); 绘制矩形: Rectangle ( int x1, int y1, int x2, int y2 ); 绘制椭圆: Ellipse( int x1, int y1, int x2, int y2 ); 例:pDC-Ellipse(0,200,100,120);,常用绘图工具,画笔:负责绘制直线和曲线的工具 画刷:负责填充图形的工具,绘图的一般过程: 创建或取得设备环境(DC) 创建绘图工具(画笔、画刷等)(否则采用默认的绘图工具) 将绘图工具选入设备环境 绘制图形 释放获得的设备环

11、境,创建和载入绘图工具,库存对象(StockObject)(基本工具) 画笔 BLACK_PEN Black pen(默认) NULL_PEN Null pen WHITE_PEN White pen 画刷 BLACK_BRUSH Black brush DKGRAY_BRUSH Dark gray brush GRAY_BRUSH Gray brush HOLLOW_BRUSH Hollow brush LTGRAY_BRUSH Light gray brush NULL_BRUSH Null brush WHITE_BRUSH White brush,载入库存对象 SelectStockO

12、bject(int nIndex ); 例如:pDC-SelectStockObject(WHITE_PEN); 例如:pDC-SelectStockObject(GRAY_BRUSH);,自定义对象 自定义画笔 自定义画刷,自定义画笔,CPen( int nPenStyle, int nWidth, COLORREF crColor ); 常用的画笔样式: PS_SOLID PS_DASH PS_DOT PS_DASHDOT 颜色: RGB(nRed, nGreen,nBlue),红色值,蓝色值,绿色值,RGB(255, 0, 0),RGB(0, 255, 0),RGB(0, 0, 255)

13、,例:CPen pen(PS_DOT,1,RGB(255,0,0);,自定义画刷,CBrush(int nIndex, COLORREF crColor ); 画刷的样式(nIndex): HS_BDIAGONALDownward hatch at 45 degrees HS_CROSSHorizontal and vertical crosshatch HS_DIAGCROSSCrosshatch at 45 degrees HS_FDIAGONALUpward hatch at 45 degrees HS_HORIZONTALHorizontal hatch HS_VERTICALVert

14、ical hatch 例如:CBrush brush(HS_CROSS,RGB(0,0,255);,可省,默认为实心,载入自定义对象 SelectObject(CPen* pPen ); 例如: CPen pen(PS_DOT,1,RGB(255,0,0); pDC-SelectObject(,非1时会出现什么情况?,练习,输出如下图形:,void CHelloView:OnDraw(CDC* pDC) pDC-TextOut(200,50,基本图形); CPen pen1(PS_DOT,1,RGB(255,0,0); pDC-SelectObject(pen1); pDC-MoveTo(30

15、,100); pDC-LineTo(200,100); CPen pen2(PS_DOT,3,RGB(255,0,0); pDC-SelectObject(pen2); pDC-Rectangle(300,100,400,200); pDC-SelectStockObject(GRAY_BRUSH); pDC-Ellipse(300,100,400,200); CBrush brush(HS_CROSS,RGB(0,0,255); pDC-SelectObject( ,文本,设置文本的颜色 SetTextColor(COLORREF nColor); 设置文本背景的颜色 SetBkColor(

16、COLORREF nColor); 例如: pDC-SetTextColor(RGB(0,255,0); pDC-SetBkColor(RGB(255,255,0); pDC-TextOut(10,10,hello world);,3、基本事件处理,鼠标事件: 单击 双击 移动 添加消息响应函数: (1) View ClassWizard (2)类上点右键 添加windows消息,常用鼠标消息:,例1、按下鼠标左键时绘制灰色椭圆 添加左键按下的消息响应函数 View ClassWizard WM_LBUTTONDOWN,方法一: void CHelloView:OnLButtonDown(UINT nFlags, CPoint point) CDC *pDC=GetDC(); pDC-SelectStoc

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号