如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
本文由sdhexu贡献pdf1。下载下载第11章绘图位图和图标允许给应用程序添加色彩和风格.因为所有的Windows界面在本质上都是相同的,实际上,商标和启动窗口是用来区别不同应用程序外观的唯一方法.显然,绘图对于创建自己的控件,以及在CAD应用程序中显示图形也是重要的.可以用本章中的例子给他们的应用程序增添一些独特的风格.例53绘制图形讨论一些MFC绘图工具.例54绘制文本讨论怎样绘制文本.例55从任意位置装入一个图标并绘制例57从文件中创建一个位图讨论从磁盘装入一个图标的方法.讨论从磁盘装入一个位图的方法.例56从任意位置装入一个位图和绘制一个位图板以及根据需要替换位图颜色的能力.例58创建一个自绘位图用我们可得的MFC绘图工具在内存中创建一个位图.采用位图装入过程控制位图,以包括创建一个位图调色11.1例53绘制图形目标绘制一个如图11-1中看到的图形.图11-1用MFC可以绘制这些图形策略应用MFC的CDC类的不同绘图工具.步骤在Windows应用程序中绘图用一个设备环境完成,该设备环境定义用户在哪里绘图,用什么工具绘图以及采用什么绘图模式;设备环境取消了重复的参数调用,因而有助于简化Windows绘图工具.参见第4章有关该主题的详细内容.下载1.创建一个设备环境第11章绘图1991)如果处理一个WM_PAINT消息或其他类似的消息,则可以提供一个设备环境,如果没有提供,则必须自己创建一个;如果要绘制一个屏幕,可以用下面的代码创建一个设备环境,这里的pWnd是CWnd类的实例的指针.该类的实例应该拥有需要绘制的窗口.CDC*pDC=pWnd-GetDC();>2)如果创建一个自己的设备环境,用完后必须销毁它;否则,会发生另一种内存泄漏,称为资源泄漏.销毁一个设备环境,用:pWnd-ReleaseDC(pDC);>注意调用这些函数的类应控制需要绘制的窗口;如果没有这样的窗口类实例存在,可以使用AfxGetMainWnd()-GetDC()或::GetDC(NULL),它将返回一个用桌面窗口特征>初始化的设备环境.后面的函数返回一个设备环境句柄,在此处使用该返回的设备环境句柄,必须把它封装到CDC类的实例中.设备环境具有一些预定义的绘图特征,其中之一是绘制线条的宽度和颜色,这一特征实际上包含在该设备环境指向的对象中.该对象叫做画笔(Pen),它默认为绘制一个像素宽的黑色线条;如果需要别的特征,则需要创建自己的画笔对象.2.创建一个画笔1)根据画线所需的特征创建CPen类的一个实例.CPenpen(PS_SOLID,//solidlinealso//PS_DASH,PS_DOT,PS_DASHDOT,//PS_DASHDOTDOT,PS_INSIDEFRAMEand//PS_NULL//widthinpixels//color2,RGB(128,128,128));2)让设备环境指向该新画笔对象,但还要保存一个旧画笔的指针,以便以后能恢复它.Cpen*pPen=pDC->SelectObject(&pen);//saveoldpen另一个在设备环境中预定义的特征是填充色(用来绘制封闭图形内部的颜色),它page1与一个绘制封闭图形的函数一起使用;默认的颜色是白色,但通过告知设备环境使用一个新的画刷对象,可以改变填充颜色.3.创建一个画刷1)用需要的颜色创建CBrush类的一个实例.CBrush(RGB(128,128,128);//clolor2)让设备环境指向该新画刷对象,但还要保存旧对象的指针,以便以后能恢复它.CBrush*pBrush=pDC->SelectObject(&brush);//saveoldbrush注意上面两步代表了创建CPen和CBrush类实例的最基本的方法,有关其他方法参见第4章和MFC文档.4.用CDC类成员函数绘制图形1)用该设备环境画一条直线,用:pDC->MoveTo(5,5);pDC->LineTo(25,25);200第二部分用户界面实例下载一条线的起始和结束坐标分成两个函数调用,以便绘制多条相邻的线条时,具有最小量的参数进出栈.这里的数字,以及本例中的其余数字,都用逻辑单位;当绘制屏幕时,逻辑单位等于屏幕像素.注意本例和本章中的其他例子使用实例调用参数;当然,也可以使用自己的函数.2)绘制一个矩形,用:pDC->Rectangle(CRect(5,55,50,85));3)绘制弧,用:pDC->Arc(CRect(5,115,50,145),CPoint(5,115),CPoint(50,115));//areaencompass