VC++多媒体编程.ppt
《VC++多媒体编程.ppt》由会员分享,可在线阅读,更多相关《VC++多媒体编程.ppt(39页珍藏版)》请在课桌文档上搜索。
1、MMT,第十二讲 VC+多媒体编程,YANGZHOUDAXUE,第1节 C+(面向对象),类和对象 在现实世界中,经常有属于同一类的对象。在面向对象软件中,也有很多共享相同特征的不同的对象。可以利用这些对象的相同特征为它们建立一个类。定义:类是定义同一类所有对象的变量和方法的原型。类一般包含数据成员和成员函数。成员函数是用来对数据成员进行操作的,又称为“方法”。类的定义格式一般地分为说明部分和实现部分。说明部分是用来说明该类中的成员,包含数据成员的说明和成员函数的说明。实现部分是用来对成员函数的定义。二者一般分开定义。,类的一般定义格式如下:class public:private:;,cla
2、ss是定义类的关键字。关键字public,private,protected被称为访问权限修饰符。它们在类体内出现的先后顺序无关,并且允许多次出现。,是类定义中的实现部分,包含所有在类体内说明的函数的定义。允许一个成员函数的类体内定义。,一个日期类定义的例子:/类的说明部分 classTDate public:voidSetDate(inty,intm,intd);voidPrint();private:intyear,month,day;,其中public部分可被对象访问,private(或protected)部分不可被对象访问。,/类的实现部分 voidTDate:SetDate(inty
3、,intm,intd)year=y;month=m;day=d;voidTDate:Print();coutyear.month.dayendl;,在VC+中,类的说明部分和实现部分不但分开定义,而且在不同的文件中。前者文件后缀为.h,后者文件后缀为.cpp。文件名相同。,类的使用类一定是通过定义它的对象(实例化)来使用的。void main()TDate Today;Today.SetDate(2008,8,8);Today.Print();,构造函数和析构函数,在类中,函数名和类名相同的函数称为构造函数,在定义对象时自动执行。函数名为 类名 的函数称为析构函数,在释放对象时自动执行。,cl
4、assTDate public:voidTDate();voidSetDate(inty,intm,intd);voidPrint();voidTDate();private:intyear,month,day;,voidTDate:TDate()year=2009;month=4;day=1;voidTDate:TDate(),当执行TDate Today;时,Today就会初始化为2009.4.1。,在类中,构造函数和析构函数是必须的。如果不定义,系统会自动生成构造和析构空函数。构造函数用来做初始化,析构函数一般用来做收尾工作。构造函数可以带参数。,classTDate public:vo
5、idTDate(inty,intm,intd);voidPrint();voidTDate();private:intyear,month,day;,voidTDate:TDate(int y,intm,intd)year=y;month=m;day=d;,定义对象时:TDate Today(2009,4,1);,继承,类的继承性就是子类自动共享父类的数据和方法的机制,表示类之间的关系。定义子类的语法如下:class:.其中继承方式为public,private或protected。,1、数据和函数都被继承。2、建立对象时,首先调用基类的构造函数,然后调用派生类的构造函数。3、对象析构时,与构
6、造时相反,先执行派生类的析构函数体,最后是执行基类的析构函数。4、构造函数和析构函数不可继承。5、可以一级一级继承下去。,#include class Sampleprotected:int x,y;public:Sample()x=1;y=2;void disp();Sample();void Sample:disp()coutx=x,y=yendl;,class son:public Sampleprivate:int z;public:son(int c)z=c;void add()coutthe sum is x+y+zendl;son();,void main()Sample s1;
7、s1.disp();son s2(5);s2.disp();s2.add();,运行结果:x=1,y=2 x=1,y=2 the sum is 8,封装:降低耦合度;类的内部可以自由修改;类具有对外的清晰接口。,多态:不同的对象可以执行相同的动作,但通过他们自己的实现代码来执行。分为静态联编方式和动态联编方式。,类的封装、继承和多态三种特性构成了面向对象程序设计思想的基础。,窗口窗口是指能进行图形处理的视觉上可见的程序窗口,包括可见不可见的消息处理能力。消息消息是消息驱动机制的核心,通过结构MSG来描述:typedef struct tagMSG HWND hwnd;/接收窗口的句柄 UINT
8、 message;/消息号 WPAPAM wParam;/消息参数 LPAPAM lParam;/消息参数 DWORD time;/发送消息时间 POINT pt;/光标位置 MSG;,第2节 windows编程,句柄在Windows环境中,句柄是用来标识项目的,这些项目包括:模块(module)任务(task)实例(instance)文件(file)内存块(block of memory)菜单(menu)控制(control)字体(font)资源(resource)GDI对象(GDI object)等从数据类型上来看它只是一个16位的无符号整数。应用程序几乎总是通过调用一个WINDOWS函数
9、来获得一个句柄,之后通过其他的WINDOWS函数使用该句柄,以引用相应的对象。,资源包括图标、位图、对话框、工具条和菜单等。资源集中在一个资源文件中定义,有特定的操作资源的函数(加载、使用、丢弃)。每个资源都有唯一的全局资源ID号。图形设备接口图形设备接口(GDI:Graphics Device Interface),它的主要任务是负责系统与绘图程序之间的信息交换,处理Windows程序的图形输出。图形设备接口(GDI)提供了一系列的函数和相关的结构,应用程序可以使用它们在显示器、打印机或其他设备上生成图形化的输出结果。GDI通过设备环境(Device Context,DC),可以直接向指定的
10、设备进行输出。设备环境包含设备的信息。应用程序使用设备环境函数来创建DC。GDI将返回一个设备环境句柄,在随后的调用中,该句柄用于表示该设备。,API函数,API(Application Programming Interface,应用程序编程接口)一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。windows APIWindows API是一套用来控制Windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数.用户的每个动作都会引发一个或几个函数的运行以告诉
11、Windows发生了什么。API函数包含在Windows系统目录下的动态连接库文件中(如User32.dll,GDI32.dll,Shell32.dll.)。SDK(Software Developers Kit)编程直接调用API函数从最底层设计程序的Windows编程方式。,#include stdafx.hBOOL InitInstance(HINSTANCE,int);LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst
12、ance,LPSTR lpCmdLine,int nCmdShow)MSG msg;/程序窗口初始化if(!InitInstance(hInstance,nCmdShow)return FALSE;/消息循环while(GetMessage(,例:,BOOL InitInstance(HINSTANCE hInstance,int nCmdShow)HWND hWnd;/窗口句柄 WNDCLASS wcex;/窗口类对象/填充窗口类结构wcex.style=CS_HREDRAW|CS_VREDRAW;wcex.lpfnWndProc=(WNDPROC)WndProc;/窗口消息处理函数wcex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 多媒体 编程

链接地址:https://www.desk33.com/p-242304.html