《2、Win32高级编程.ppt》由会员分享,可在线阅读,更多相关《2、Win32高级编程.ppt(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Win32 高级编程高级编程基本内容基本内容n资源资源n处理重要消息处理重要消息nGDIn绘制位图绘制位图一、使用资源一、使用资源程序代码数据程序代码数据资源资源光标光标图标图标字符串字符串菜单菜单位图位图.wavs对话框对话框资源定位于资源定位于.EXE.EXE的尾端的尾端编译及链接时的资源数据流程编译及链接时的资源数据流程各种资源的使用各种资源的使用n使用资源只需创建两个文件:使用资源只需创建两个文件:n.RCn.H(可选,如果想对(可选,如果想对.RC文件中的符号标识符进文件中的符号标识符进行引用的话,需要)行引用的话,需要)n举例:举例:ResSample二、处理重要消息二、处理重要消
2、息nWindows操作操作nWM_CLOSEnWM_MOVEnWM_SIZEn请记住:请记住:Windows任何事情都可以找到对应任何事情都可以找到对应的消息。的消息。键盘消息键盘消息n处理键盘事件处理键盘事件nWM_CHARnWM_KEYDOWN和和WM_KEYUPnGetAsyncKeyState()n举例:举例:KeySample鼠标消息鼠标消息n处理鼠标事件处理鼠标事件nWM_MOUSEMOVEnWM_*BUTTON*n举例举例:MouseSample主动发消息主动发消息nSendMessage向窗口传递一个要求立即向窗口传递一个要求立即处理的消息。接收窗口处理完该消息后,处理的消息。
3、接收窗口处理完该消息后,该函数便紧接着该函数便紧接着WinProc返回。返回。nPostMessage将消息发往窗口的消息队将消息发往窗口的消息队列,而后直接返回。如果不在意在消息被列,而后直接返回。如果不在意在消息被处理以前的时间延迟,或者该消息的优先处理以前的时间延迟,或者该消息的优先级较低,就可以使用该函数。级较低,就可以使用该函数。n举例:举例:UserMsg三、三、GDI编程编程打印机打印机绘图仪绘图仪显示器显示器程序员程序员使用使用GDI函函数在设数在设备上下备上下文中绘文中绘图图设设备备上上下下文文nGDI是用户可以调用的是用户可以调用的一套用于绘图操作的函一套用于绘图操作的函数
4、集数集。n用来在显示设备硬件与用来在显示设备硬件与程序员之间进行隔离的程序员之间进行隔离的虚拟绘图环境叫做设备虚拟绘图环境叫做设备描述环境描述环境DC。它屏蔽它屏蔽了显示设备的特殊性,了显示设备的特殊性,给程序员提供了一个统给程序员提供了一个统一的绘图界面。一的绘图界面。理解理解WM_PAINT消息消息nWM_PAINT 消息消息nBeginPaint()和和 EndPaint()nGetDC()和和 ReleaseDC()n举例:举例:Frame3图形坐标系统图形坐标系统窗口用户坐标窗口用户坐标屏幕坐标屏幕坐标(0,0)(0,0)+x+y-x-y+y+x+x+yWindowsWindows坐
5、标系坐标系笛卡尔坐标系笛卡尔坐标系 绘制文本绘制文本nTextOutnDrawTextnSetTextColor()nSetBkColor()nSetBkMode():设置透明度:设置透明度n举例:举例:DrawText高级高级GDI绘图绘图n画笔画笔n画线条和轮廓,具有颜色、粗细和线型。画线条和轮廓,具有颜色、粗细和线型。n画刷画刷n填充任何闭合的对象,具有颜色、样式、甚至填充任何闭合的对象,具有颜色、样式、甚至本身可以是位图。本身可以是位图。n在当前在当前DC中每次只有一个画笔和画刷被激中每次只有一个画笔和画刷被激活。活。画笔画笔n使用画笔使用画笔n使用存储对象(表示使用存储对象(表示wi
6、ndows的一些默认对象)的一些默认对象)nGetStockObject(int stockObject)n创建一个用户自定义的画笔创建一个用户自定义的画笔nCreatePen(style,width,color);n选定画笔选定画笔nSelectObject(HDC,HGDIOBJ)n删除画笔删除画笔nDeleteObject(HGDIOBJ)画刷画刷n使用画刷使用画刷n使用存储对象(表示使用存储对象(表示windows的一些默认对象)的一些默认对象)nGetStockObject(int stockObject)n创建一个用户自定义的画刷创建一个用户自定义的画刷nCreateSolidBr
7、ush(color);n选定画刷选定画刷nSelectObject(HDC,HGDIOBJ)n删除画刷删除画刷nDeleteObject(HGDIOBJ)点、线、平面多边形、圆点、线、平面多边形、圆n画点:画点:DrawPixel.cppn画线:画线:DrawLine.cppn画矩形:画矩形:DrawRect.cppn画圆:画圆:DrawCycle.cppn画多边形:画多边形:DrawPolygon.cpp四、绘制位图四、绘制位图位图文件头位图文件头位图信息段位图信息段调色板信息(如果有的话)调色板信息(如果有的话)位图数据位图数据RGB像素像素或或索引数据索引数据很简单的信息头很简单的信息头关于数据和关于数据和BMP尺寸的详细信息尺寸的详细信息RGB quad位图实际数据位图实际数据绘制位图绘制位图nLoadBitmapnLoadImagen自定义自定义Bitmap类类n举例:举例:BMPSample
限制150内