资源描述:
《第二章MFC入门--图形输出.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二章图形输出2.1和GUI有关的各种对象2.2在窗口中输出文字2.3使用点、刷子、笔进行绘图2.4在窗口中绘制设备相关位图、图标、设备无关位图2.5使用各种映射方式2.6多边形和剪贴区域2.1和GUI有关的各种对象在Windows中有各种GUI对象(不要和C++对象混淆),当你在进行绘图就需要利用这些对象。而各种对象都拥有各种属性,下面分别讲述各种GUI对象和拥有的属性字体对象CFont用于输出文字时选用不同风格和大小的字体。可选择的风格包括:是否为斜体,是否为粗体,字体名称,是否有下划线等。颜色和背景色不属于字体的属性。关于
2、如何创建和使用字体在2.2在窗口中输出文字中会详细讲解刷子CBrush对象决定填充区域时所采用的颜色或模板。对于一个固定色的刷子来讲它的属性为颜色,是否采用网格和网格的类型如水平的,垂直的,交叉的等。你也可以利用8*8的位图来创建一个自定义模板的刷子,在使用这种刷子填充时系统会利用位图逐步填充区域。关于如何创建和使用刷子在2.3使用刷子、笔进行绘图中会详细讲解画笔CPen对象在画点和画线时有用。它的属性包括颜色,宽度,线的风格,如虚线,实线,点划线等。关于如何创建和使用画笔在2.3使用刷子、笔进行绘图中会详细讲解位图CBitma
3、p对象可以包含一幅图像,可以保存在资源中。关于如何使用位图在2.4在窗口中绘制设备相关位图、图标、设备无关位图中会详细讲解还有一种特殊的GUI对象是多边形,利用多边形可以很好的限制作图区域或是改变窗口外型。关于如何创建和使用多边形在2.6多边形和剪贴区域中会详细讲解。在Windows中使用GUI对象必须遵守一定的规则。首先需要创建一个合法的对象,不同的对象创建方法不同。然后需要将该GUI对象选入DC中,同时保存DC中原来的GUI对象。如果选入一个非法的对象将会引起异常。在使用完后应该恢复原来的对象,这一点特别重要,如果保存一个临
4、时对象在DC中,而在临时对象被销毁后可能引起异常。有一点必须注意,每一个对象在重新创建前必须销毁,下面的代码演示了这一种安全的使用方法。OnDraw(CDC*pDC){CPenpen1,pen2;pen1.CreatePen(PS_SOLID,2,RGB(128,128,128));//创建对象pen2.CreatePen(PS_SOLID,2,RGB(128,128,0));//创建对象CPen*pPenOld=(CPen*)pDC->SelectObject(&pen1);//选择对象进DCdrawWithPen1...(C
5、Pen*)pDC->SelectObject(&pen2);//选择对象进DCdrawWithPen2...pen1.DeleteObject();//再次创建前先销毁pen1.CreatePen(PS_SOLID,2,RGB(0,0,0));//再次创建对象(CPen*)pDC->SelectObject(&pen1);//选择对象进DCdrawWithPen1...pDC->SelectObject(pOldPen);//恢复}此外系统中还拥有一些库存GUI对象,你可以利用CDC::SelectStockObject(Sel
6、ectStockObject(intnIndex)选入这些对象,它们包括一些固定颜色的刷子,画笔和一些基本字体.●BLACK_BRUSHBlackbrush.●DKGRAY_BRUSHDarkgraybrush.●GRAY_BRUSHGraybrush.●HOLLOW_BRUSHHollowbrush.●LTGRAY_BRUSHLightgraybrush.●NULL_BRUSHNullbrush.●WHITE_BRUSHWhitebrush.●BLACK_PENBlackpen.●NULL_PENNullpen.●WHITE_
7、PENWhitepen.●ANSI_FIXED_FONTANSIfixedsystemfont.●ANSI_VAR_FONTANSIvariablesystemfont.●DEVICE_DEFAULT_FONTDevice-dependentfont.●OEM_FIXED_FONTOEM-dependentfixedfont.●SYSTEM_FONTThesystemfont.Bydefault,Windowsusesthesystemfonttodrawmenus,dialog-boxcontrols,andothertext
8、.InWindowsversions3.0andlater,thesystemfontisproportionalwidth;earlierversionsofWindowsuseafixed-widthsystemfont.●SYSTEM_FIXED_FONT