第四章 图形和文本.ppt
文本预览下载声明
c.ExtTextOut( ) 该函数的功能与TextOut( )相似,但可以根据指定的矩形区域裁剪文本串,并调整字符间距。函数原型为:? Virtual BOOL ExtTextOut(int x,int y,UINT nOptions, LPCRECT lpRect,LPCTSTR lpszString, UINT nCount,LPINT lpDxWidths); 或:? BOOL ExtTextOut(int x, int y, UINT nOptions,LPCRECT lpRect, const CString str,LPINT lpDxWidths); d.TabbedTextOut( ) 该函数的功能与TextOut( )相似,但可按指定的制表间距扩展制表符。 位图是一个由位构成的图像,它是由一系列0和1排列而成的点阵结构。位图中每一个像素点由位图文件中的一位或者多位数据表示,整个位图的信息被细化为每个像素的属性值。 Windows支持两种不同形式的位图:设备相关位图(Device Dependent Bitmap,DDB)和设备无关位图(Device Independent Bitmap,DIB)。 位图 设备相关图(DDB) DDB又称GDI位图,它依赖于具体设备,只能存在于内存中。这主要体现在以下两个方面:一方面,DDB的颜色模式必须与输出设备相一致;另一方面,在256色以下位图中存储的像素值是系统调色板的索引,其颜色依赖于系统调色板。因此,当在一台机器上创建的位图在另一台机器上显示时就可能会出现问题。 设备无关图(DIB) DIB是不依赖硬件的位图,因为它包含了创建DIB位图时所在设备的颜色格式、分辨率和调色板等信息。DIB位图不能直接显示,需要先转换为与设备相关的格式,再由具体的设备显示。DIB位图通常以BMP后缀名的文件形式存储在磁盘中,或者以资源的形式存在于EXE或DLL文件中。 MFC提供了大量的类和函数来处理位图的操作。 a.创建DDB函数 BOOL LoadBitmap(LPCTSTR lpszResourceName); BOOL LoadBitmap(UINT nlDResource);? 其中,参数lpszResourceName或nlDResouree分别为位图资源名称或位图资源标识。该函数从资源中装入一幅位图,若载入成功,则返回值为真,否则返回值为假。资源位图实际上是一个DIB位图,该函数在装入时把它转换成了DDB位图。 位图操作函数 BOOL CreateCompatibleBitmap(CDC* pDC,int nWidth,int nHeight);? 其中参数pDC指向一个设备环境,参数nWidth和nHeight以像素为单位,用来指定位图的宽度和高度。该函数创建一个与指定设备环境兼容的DDB。若创建成功,函数返回值为真,否则为假。 b.获取位图信息函数 int GetBitmap(BITMAP* pBitMap); ? 该函数用来获取与DDB有关的信息,参数pBitMap是BITMAP结构的指针。 c.输出位图函数 BOOL BitBlt(int x,int y,int nWidth,int nHeight,CDC* pSrcDC,int xSrc,int ySrc,DWORD dwRop); ? 该函数共有8个参数,其中x、y、nWidth、nHeight定义当前设备环境的复制区域;pSrcDC为指向原设备环境对象的指针;xSrc、ySrc为原位图的左上角坐标;dwRop定义了进行复制时的光栅操作方式。该函数把源设备环境中的位图复制到目标设备环境中。 BOOL PatBlt(int x,int y,int nWidth,int nHeight,DWORD dwRop);? 其中,参数DwRop确定画刷类型。该函数是用当前画刷填充一个矩形。并不是所有的设备环境都支持该函数,使用该函数之前需要对设备环境使用 GetDeviceCaps进行判断,以便确定是否支持该函数调用。 BOOL StretchBlt(int x,int y,int nWidth,int nHeight,CDC* pSrcDC,int xSrc,int ySrc,int nSrcWidth,int nSrcHeight, DWORD dwRop);? 其中,除了参数nSrcWidth和nSrcHeight表示目标图像新的宽度与高度之外,其他参数x、y、nWidth和nHeight等的含义与BitBlt函数中的同名参数相同。该函数提供了将图形拉伸压缩的复制方式。 (1)声明一个CBitmap类的对象,使用L
显示全部