企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
一、**CPen**(画笔):用于修饰线条的颜色、宽度和线型(实线、虚线); ```c++ CPen(int nPenStyle,int nWidth,COLORREF crColor); //在构造函数中创建一个画笔 BOOL CreatePen(itn nPenStyle,int nWidth, COLORREF crColor); // 根据指定数值创建一个画笔 BOOL CreatePenIndirect(LPLOGPEN lpLogPen); //根据LOGPEN结构体创建一个画笔 static CPen* FromHandle(HPEN hpen); // 将 **HPEN** 句柄转化为CPen对象 HPEN hPen = (HPEN)p2.GetSafeHandle(); //基类句柄需要转化(HEPN) operator HPEN() const; //从CPen对象中获取HPEN句柄 int GetLogPen(LOGPEN* pLogPen); //获取画笔的颜色粗度等的属性信息 ``` * * * * * 二、**CBrush**(画刷):用于修饰一个闭合图形内部的填充内容(填充颜色,填充线条以及平铺位图) ```c++ CBrush(COLORREF crColor); 在构造函数中根据填充色创建画刷 CBrush(int nIndex,COLORREF crColor); 在构造函数中根据颜色和影线创建画刷 CBrush(CBitmap* pBitmap) 在构造函数中根据平铺位图创建画刷 BOOL CreateSolidBrush(COLORREF crColor); 根据填充色创建画刷 BOOL CreateHatchBrush(int nIndex,COLORREF crColor); 根据颜色和影线创建画刷 BOOL CreatePatternBrush(CBitmap* pBitmap) 根据平铺位创建画刷 BOOL CreateBrushIndirect(const LOGBRUSH* lpBrush) 根据LOGBRUSH结构体创建一个画笔 static CBrush* FromHandle(HBURSH hBrush) 将HBRUSH句柄转化为CBrush对象 operator HBURSH()const; 从CBrush对象中获取hBRUSH句柄 int GetLogBrush(LOGBRUSH* pLogBrush); 获取画刷的颜色和应县等属性信息 ``` * * * * * 三、**CFont**(字体):用于修饰输出文字的样式,高度、粗细以及字间距等 ```c++ BOOL CreateFontInderect(const LOGFONT* lpLogFont); 根据LOGFONT结构体创建一个字体 BOOL CreateFont(int nHeight, int nWidth, int nEscapenment,int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderLine, BYTE cStrikeout, BYTE nCharSet, BYTE nOut Precision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, LPCTSTR lpszFacename); // 根据指定数值创建爱你一个字体,包括字体名称、高度和宽度等 BOOL CreatePointFont(int nPointSize, LPCTSTR lpszName, CDC* pDC = NULL); //根据字体名称和高度创建一个字体 BOOL CreatePointFontIndirect(const LOGFONT = lpFont, CDC* pDC = NULL); // 根据LOGFONT结构体创建一个字体 statice CFont* FromHandle(HFONT hFont); // 将HFONT 句柄转化为CFont对象; opeartor HFONT() const; // 从CFont对象中获取HFONT句柄 int GetLogFont(LOGFONT* pLogFont); // 获取字体的名称和高宽等属性信息 1.描述字体属性的结构体LOGFONT,包含很多内容: ``` 四、**CBitmap** (位图),用于显示和处理点阵图的GDI对象 ```c++ BOOL LoadBitmap(UINT nIDResource); //从工程资源中加载一张位图 BOOL LoadONEBitmap(UINT nIDBitmap); //从系统资源中加载一张位图 BOOL CreateBitmap(int nWidth,int nHeight, UINT nPIane, UINT nBitCnt,const void* lpBits); //根据指定高宽以及点阵数据创建一张位图 BOOL CreateCompatibleBitmap(CDC* pDC,int nWidth, int nHeight); // 根据指定高宽创建一张兼容位图 BOOL CreateBitmapIndirect(LPBITMAP lpBitmap); // 根据BITMAP结构体创建一张空白位图 int GetBitmap(BITMAP * pBitmap); // 通过BITMAP结构体获取位图属性信息 static CBitmap* FromHandle(HBITMAP hBitmap); // 将HBITMAP 句柄转化为CBitmap对象 opeartor HBITMAP() const; // 从CBitmap对象中获取HBITMAP句柄 2.装载位图和显示过程主要一下几个步骤 位图装载: CBitmap::loadBitmap(CBitmap::GetBitmap去的高宽); ``` a)创建兼容的内存DC: ```c++ CDC::CreateCompatibleDC; ``` b)使用内存DC选择装载了位图资源的对象; ```c++ CDC::SelectObject; ``` c)使用贴图函数显示内存CD中的位图内容: ```c++ CDC::bitBlt; ``` d)如果要压缩或拉伸原始图片则使用: ```c++ CDC::StretchBlt; ``` 五、**CRgn**(区域):用于修饰输出图像的不规则便捷,例如:椭圆或多边形等 ```c++ BOOL CreateRectRgn(int x1,int y1,int x2,int y2) //创建一个矩形区域 BOOL CreateEllipticRgn(int x1, int y1, int x2, int y2); //创建一个椭圆形区域 BOOL CreatePolygonRgn(LPPOINT lpPlints,int nCount, int nMode) //创建一个多边形区域 BOOL CreateRoundRectRgn(int x1, int y1, int x2,int y2,int x3,int y3); //创建一个圆角形区域 int CopyRgn(CRgn* pRgnSrc); //从已有的区域对象赋值 int CopyRgn(CRgn* pRgn1,Crgn*pRgn2,int nConbineMode); //将两个区域合并成一个区域 static CRgn* FromHandle(HRGH hRgn); //HBRUSH转化为CBrush对象 operator HRGN()const //从CRgn获取HRGN句柄 int GetRegionData(LPRGHDATA lpRgnData,int nCount)const; //获取区域的属性信息 ```