如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Windows编程基础窗口和程序窗口窗口的组成窗口的组成三种类型的窗口三种窗口组成的应用程序三种类型的窗口程序进程与线程Windows任务管理器—进程线程Windows应用程序,操作系统,计算机硬件之间的相互关系API与SDK关于API关于API事件及消息消息(Message)消息(Message)消息的功能消息的组成句柄(HANDLE)句柄常用的句柄从变量的类型区分变量的用途消息驱动机制消息驱动机制消息的分类不同消息类型的取值范围Windows应用程序常用消息Windows应用程序常用消息消息的传递消息的传递一个应用程序队列两个应用程序队列结束一个应用程序创建消息循环创建消息循环投递和发送消息投递和发送消息—图示投递和发送消息—示例VC6.0下三种编程方式VisualC++开发环境开发环境的菜单功能开发环境的菜单功能File->New->ProjectsVC6.0可以创建的项目类型File->New->Files开发环境的工具栏2.1Windows程序结构2.1.1简单的Windows应用程序2.1.1简单的Windows应用程序2.1.1简单的Windows应用程序窗口的创建设计窗口类窗口类的类型我们使用gotodefinition就能发现CS_VREDRAW=0x0001,CS_HREDRAW=0x0002,CS_DBLCLKS=0x0008,CS_NOCLOSE=0x0200。他们的共同点就是只有一位为1,其余位都为0。如果我们希望某一变量的数值既有CS_VREDRAW特性,又有CS_HREDRAW特性?我们只需使用二进制OR(|)操作符将他们进行或运算相组合,如style=CS_VREDRAW|CS_HREDRAW|CS_NOCLOSE。如果我们希望在某一变量原有的几个特征上去掉其中一个特征,用取反(~)之后再进行与(&)运算,就能够实现,如在刚才的style的基础上去掉CS_NOCLOSE特征,可以用style&~CS_NOCLOSE实现。窗口过程函数窗口过程函数2.1.1简单的Windows应用程序CreateWindow函数的原型:2.1.1简单的Windows应用程序Windows应用程序的基本流程:2.1.2Windows编程特点1.消息驱动机制Windows程序和控制台应用程序之间一个最根本区别,在于控制台应用程序是通过调用系统函数来获得用户输入,而Windows程序则是通过系统发送的消息来处理用户输入。2.图形设备接口(GDI)Windows提供了一个抽象的接口,称为图形设备接口(GraphicalDeviceInterface,GDI),使得用户直接利用系统的GDI函数就能方便实现图形和文本的输出,而不必关心与系统相连的外部设备的类型。2.1.2Windows编程特点Windows提供了丰富的应用程序可调用的函数,大多数用于实现其用户界面和在屏幕显示的文本和图形,都是通过动态链接库来实现的。在Windows操作系统中,最主要的DLL有KERNEL32.DLL、GDI32.DLL和USER32.DLL。KERNEL32.DLL用来处理存储器低层功能、任务和资源管理等Windows核心服务;GDI32.DLL提供图形设备接口,管理用户界面和图形绘制,包括Windows元文件、位图、设备描述表和字体等;USER32.DLL负责窗口的管理,包括消息、菜单、光标、计时器及其它与控制窗口显示相关的一些功能。2.1.3Windows常用的基本数据类型2.1.3Windows基本数据类型2.2Windows简单编程2.2.1绘制文本2.2.1绘制文本2.2.1绘制文本2.2.2使用控件2.3MFC编程基础2.3.1MFC概述MFC类的基本层次结构2.3.2设计一个MFC程序2.3.3理解程序代码首先执行的是:m_pMainWnd=newCMainFrame();该语句用来创建从CFrameWnd类派生而来的用户框架窗口CMainFrame类对象,继而调用该类的构造函数,使得Create函数被调用,完成窗口的创建工作。然后执行后面两句,用作窗口的显示和更新。m_pMainWnd->ShowWindow(m_nCmdShow);m_pMainWnd->UpdateWindow();最后返回TRUE,表示窗口创建成功。2.3.3理解程序代码2.3.3理解程序代码2.3.3理解程序代码(2)使用BEGIN_MESSAGE_MAP和END_MESSAGE_MAP宏在类声明之后的地方定义该类支持的消息映射入口点,所有消息映射宏都添加在这里,当然不同的消息MFC都会有不同的消息映射宏。如:BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)…END_MESSAGE_M