|
StretchBlt 函数 : 从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩。
StretchBlt 函数的定义形式为:
BOOL StretchBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC,int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop);
BOOL StretchBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, DWORD dwRop);
第一个参数:x:指定目标矩形左上角的x坐标
第二个参数:y:指定目标矩形左上角的y坐标
第三个参数:nWidth:指定目标矩形的宽度
第四个参数:nHeight:指定目标矩形的高度
第五个参数:pSrcDC:指定原矩形的cdc
第六个参数:xSrc:指定源矩形左上角的x坐标
第七个参数:ySrc:指定源矩形左上角的y坐标
第八个参数:nSrcWidth:指定源矩形的宽度
第九个参数:nSrcHeight:指定源矩形的高度
第十个参数:dwRop:指定要执行的图形操作。图形操作代码定义了GDI如何在输出操作中组合颜色,其中包括当前画笔、可能的源位图和目标位图。
这个参数可以是以下值之一:
BLACKNESS 使所有输出变为黑色。
DSTINVERT反转目标位图。
MERGECOPY使用Boolean和运算符组合模式和源位图。
MERGEPAINT使用OR操作符将反向源位图与目标位图组合在一起。
NOTSRCCOPY将反向源位图复制到目标。
NOTSRCERASE反转使用OR操作符组合目标位图和源位图的结果。
PATCOPY将模式复制到目标位图。
PATINVERT使用布尔XOR操作符将目标位图与模式组合在一起。
PATPAINT使用Boolean或运算符将反向源位图与模式组合在一起。使用OR操作符将此操作的结果与目标位图组合在一起。
SRCAND使用Boolean和操作符组合目标位图和源位图的像素。
SRCCOPY将源位图复制到目标位图。
SRCERASE反转目标位图,并使用Boolean和操作符将结果与源位图组合。
SRCINVERT使用布尔XOR操作符组合目标位图和源位图的像素。
SRCPAINT使用OR操作符组合目标位图和源位图的像素。
WHITENESS 使所有输出变为白色。
DrawText 函数 : 初始化给定矩形中的文本。要指定其他格式选项,请使用CDC::DrawTextEx。
DrawText函数的定义形式为:
virtual int DrawText(LPCTSTR lpszString,int nCount,LPRECT lpRect,UINT nFormat);
第一个参数: lpszString : 指向要绘制的字符串。如果nCount为-1,则字符串必须以null结尾。
第二个参数: nCount: 指定字符串中的字符数。如果nCount为-1,则假定lpszString是指向以null结尾的字符串的长指针,DrawText自动计算字符计数。
第三个参数: lpRect: 指向包含要格式化文本的矩形(在逻辑坐标中)的矩形结构或CRect对象。
第四个参数: nFormat: 指定格式化文本的方法。它可以是Windows SDK中的DrawText中uFormat参数所描述的任何值的组合。(使用位或运算符组合):
int DrawText(const CString& str,LPRECT lpRect,UINT nFormat);
第一个参数: str: 包含要绘制的指定字符的CString对象。
第二个参数: lpRect: 指向包含要格式化文本的矩形(在逻辑坐标中)的矩形结构或CRect对象。
第三个参数:nFormat: 指定格式化文本的方法。它可以是Windows SDK中的DrawText中uFormat参数所描述的任何值的组合。(使用位或运算符组合):
CDC* pDC = CDC::FromHandle (lpDrawItemStruct->hDC);
//获取位置
CRect rectSubItem;
GetSubItemRect(nItem, LINETYPE, LVIR_BOUNDS, rectSubItem);
pDC->DrawText (strName.c_str(), rectSubItem, DT_SINGLELINE | DT_VCENTER | DT_END_ELLIPSIS | DT_NOPREFIX);
Draw3dRect 函数 :绘制一个三维矩形。
Draw3dRect函数的定义形式为:
void Draw3dRect(LPCRECT lpRect, COLORREF clrTopLeft,COLORREF clrBottomRight);
第一个参数: lpRect : 指定边框(以逻辑单元为单位)。您可以为该参数传递指向RECT结构的指针或CRect对象。
第二个参数: 指定三维矩形的顶部和左侧的颜色。
第三个参数: 指定三维矩形的底部和右侧的颜色。
void Draw3dRect(int x,int y,int cx, int cy,COLORREF clrTopLeft,COLORREF clrBottomRight);
第一个参数: x: 指定三维矩形左上角的逻辑x坐标。
第二个参数: y: 指定三维矩形左上角的逻辑y坐标。
第三个参数: cx: 指定三维矩形的宽度。
第四个参数: cy: 指定三维矩形的高度。
第五个参数: clrTopLeft :指定三维矩形的顶部和左侧的颜色。
第六个参数: clrBottomRight :指定三维矩形的底部和右侧的颜色。
CImageList::DrawIndirect : 函数 绘制图像列表。
DrawIndirect函数的定义形式为:
BOOL DrawIndirect( CDC* pDC, int nImage, POINT pt, SIZE sz, POINT ptOrigin, UINT fStyle = ILD_NORMAL, DWORD dwRop = SRCCOPY, COLORREF rgbBack = CLR_DEFAULT, COLORREF rgbFore = CLR_DEFAULT, DWORD fState = ILS_NORMAL, DWORD Frame = 0, COLORREF crEffect = CLR_DEFAULT );
第一个参数: pDC:
第二个参数: nImage: 要绘制的图像的从零开始的索引。
第三个参数: pt: 要绘制图像的x和Y坐标的点 。
第四个参数: sz: 指示图像的大小.
第五个参数: ptOrigin 指定绘制操作的左上角
第六个参数: fStyle :指定绘制样式。
第七个参数: dwRop: 指定要执行的图形操作。
第八个参数: rgbBack : 图像背景色,默认情况下 CLR_DEFAULT:默认背景色。图像绘制使用图像列表背景色。 此参数可以为应用程序定义的RGB值或一个以下值:CLR_DEFAULT 和CLR_NONE:没有背景色。 透明地绘制图像。
第九个参数: rgbFore : 图像前景色,默认情况下 CLR_DEFAULT:默认前景色。 图像绘制使用系统突出显示颜色作为前景颜色。。 此参数可以为应用程序定义的RGB值或一个以下值:CLR_DEFAULT 和 CLR_NONE: 没有混合颜色。 图像与目标dc的颜色相混合。
第十个参数: fState : 指定绘制状态的标志。 此成员可以包含一个或多个图像列表状态标志。
第十一个参数: Frame : ILS_SATURATE,该成员表示已添加到RGB三元色每个颜色分量每个像素的在图标的值。 ILS_APLHA,该成员表示alpha通道的值。 此值可以为从0到255,0完全透明和255是完全不透明的。
第十二个参数: crEffect: 用于发光和阴影效果COLORREF 值。 |
|