天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 43|回复: 0

MFC_自绘相关函数

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
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  值。

 

 

 

 

MFC_自绘相关函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 11:40 , Processed in 0.135784 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表