画图方法:
1.获取设备环境
HDC hdc;
hdc=BeginPaint(HWND,LPPAINTSTRUCT);//开始画图(获取设备环境)----------EndPaint(HWND,LPPAINTSTRUCT);//结束画图
hdc=GetDC(HWND);//开始画图(获取设备环境-功能更强)-------------ReleaseDC(HWND);//结束画图 2.设置画笔
HPEN hPen;//定义画笔的句柄
hPen=(HPEN)GetStockObject(nPenStyle);/hPen=CreatePen(nPenStyle,nWidth,rgbColor);//定义画笔
SelectObject(HDC,HPEN); //选择画笔
DeleteObject(HPEN);//删除画笔
3.设置画刷
HBRUSH hBrush; //定义画刷的句柄
hBrush=(HBRUSH)GetStockObject(nBrushStyle); /CreatSolidBrush(rgbColor);/CreateHatchBrush(nHctchStyle,rgbColor);//定义的画刷
SelectObject(HDC,HBRUSH); //选择画刷
DeleteObject(HBRUSH); //删除画刷
4.主要函数
1)颜色宏:RGB(nRed, nGreen,nBlue)
2)设置画笔当前位置的函:BOOL MoveToEx(HDC hdc,int X, int Y,LPPOINT lpPoint )
3)从当前位置向指定坐标点画直线的函数:BOOL LineToEx(HDC hdc,int X,int Y);
4)从当前位置开始,依次用线段连接lpPoints中指定的各点的函数BOOL Polyline(HDC hdc,LPPOINT lpPoints,int nCount)
5)绘制椭圆弧线的函数BOOL Arc(HDC hdc,int X1,intY1, int X2,int Y2,int X3,int Y3,int X4,int Y4 )
6)使用当前画笔绘制一个饼图,并使用当前画刷进行填充的函数:BOOL Pie(HDC hdc,int X1,intY1,int X2,int Y2,int X3,int Y3,int X4,int Y4 )
说明:(x3,y3),(x4,y4)与圆心的连线把圆割成饼
7)使用当前画笔绘制一个矩形,并使用当前画刷进行填充的函数:BOOL Rectangle(HDC hdc,int X1,int Y1,int X2,int Y2)
8)绘制一个圆角矩形:BOOL RoundRect(HDC hdc,int X1,int Y1,int X2,int Y2,int nHeight,int nWidth)
9)绘制一个椭圆:BOOL Ellipse(HDC hdc,intX1,intY1,intX2,intY2)
10)绘制一个多边形:BOOL Polygon(HDC hdc,LPPOINT lpPoints,int nCount)
附
1.设置映像模式:将逻辑单位转化为设备的度量单位
窗口:对应逻辑坐标系上程序员设定的区域
视口:对应实际输出设备上程序员设定的区域
我们看到的都是视口,设置映像模式实际上就是设置逻辑图像与物理输出图像间的比例.
1) 设置映像模式SetMapMode(hdc,nMapMode)
获取映像模式GetMapMode(hdc)
映像模式(nMapMode) 将一个逻辑单位映射为 坐标系设定
MM_ANISOTROPIC 系统确定 Optional(窗口:视口表现为:窗口高:视口高;窗口宽:视口宽)
MM_HIENGLISH 0.001英寸 Y上,X右
MM_HIMETRIC 0.01毫米 Y上,X右
MM_ISOTROPIC 系统确定 Optional,但X:Y=1:1(窗口:视口表现为:min{窗口高:视口高,窗口宽:视口宽})
MM_LOENGLISH 0.01英寸 Y上,X右
MM_LOMETRIC 0.1毫米 Y上,X右
MM_TEXT(默认) 一个像素 Y下,X右
MM_TWIPS 1/1440英寸 Y上,X右
2) 窗口区域的定义BOOL Set WindowExtEx(HDC hdc,int nHeight,int nWidth,LPSIZE lpSize)
视口区域的定义BOOL Set ViewportExtEx(HDC hdc,int nHeight,int nWidth,LPSIZE lpSize)
3) 视口的缺省原点和窗口的缺省原点均为(0,0)
设置窗口原点:BOOL SetWindowOrgEx(HDC hdc,int X,int Y,LPPOINT lpPoint)
设置视口原点:BOOL SetViewOrgEx(…)
2.获取系统画笔时的类型nPenStyle:WHITE_PAN、BLACK_PAN、DC_PAN、NULL_PAN
创建画笔时的类型nPenStyle:PS_DASH、PS_DASHDOT、PS_DASHDOTDOT、PS_DOT、PS_INSIDEFRAME、PS_NULL、PS_SOLID
获取系统画刷时的类型nBrushStyle: BLACK_BRUSH、DKGRAY_BRUSH、GRAY_BRUSH、HLLOW_BRUSH、LTGRAY_BRUSH、NULL_BRUSH、WHITE_BRUSH
创建画刷时的类型nBrushStyle:HS_BDIAGONAL、HS_DIAGCROSS、HS_FDIAGNAL、HS_CROSS、HS_HORIZONTAL、HS_VERTICAL
3.PAINTSTRUCT数据结构是Windows系统提供的标识无效区域的结构,其定义如下:
Typedef struct tagPAINTSTRUCT
{
HDC hdc; //设备环境句柄
BOOL fErase; // fErase一般取真值,表示擦除无效矩形的背景
RECT rcPaint; //无效矩形标识
BOOL fRestore; //系统保留
BOOL fIncUpdate; //系统保留
BYTE rgbReserved[16]; //系统保留
} PAINTSTRUCT;
HarmonyOS hdc使用 hdc怎么用
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
解锁HDC 2024之旅:从购票到报名,全程攻略
HDC 2024购票报名全攻略全部奉上~
开发者 HDC 2024 盘古大模型 华为开发者大会 HarmonyOS -
springMvc开启cron表达式
字段 允许值 允许的特殊字符秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1-31 , - * ? / L W C 月份 1-12 或者 JAN-DEC , - * / 星期 &
springMvc开启cron表达式 character calendar numbers quartz