当前位置: 首页 > wzjs >正文

建站平台费用电子商务网站网络拓扑图

建站平台费用,电子商务网站网络拓扑图,网站备案信息可以改吗,如何新建一个网站文章目录 GDI绘图函数介绍设备上下文函数m_hDC GDI对象画笔画刷位图字体区域 GDI绘图函数介绍 绘图函数在CDC类里 设备上下文 DC:device context 设备上下文,显卡驱动程序,控制硬件,每个厂商的都不同,操作系统层面,…

文章目录

  • GDI绘图函数介绍
    • 设备上下文
    • 函数
    • m_hDC
  • GDI对象
    • 画笔
    • 画刷
    • 位图
    • 字体
    • 区域

GDI绘图函数介绍

绘图函数在CDC类里
在这里插入图片描述

设备上下文

在这里插入图片描述

DC:device context 设备上下文,显卡驱动程序,控制硬件,每个厂商的都不同,操作系统层面,底层来控制需要有一套给我操作系统来管理操作的api,对他们进行统一,DC就相当于一块小黑板,绘图设备

函数

		CPaintDC dc(this); // 用于绘制的设备上下文//绘制矩形dc.Rectangle(0, 0, 100, 100);//绘制线条dc.MoveTo(10, 10);//起点,如果不写,默认是原点dc.LineTo(100, 100);//终点dc.LineTo(200, 10);//绘制椭圆,或者圆dc.Ellipse(100, 100, 200, 200);dc.Ellipse(100, 100, 150, 200);//是一个矩形区域的内切圆//绘制圆角矩形dc.RoundRect(0, 210, 300, 300, 20, 20);//画3d矩形dc.Draw3dRect(10, 300, 100, 100, RGB(255, 255, 255), RGB(10, 10, 10));//绘制矩形边缘dc.DrawEdge(CRect(10, 400, 100, 500), EDGE_SUNKEN, BF_RECT);//绘制矩形边缘,EDGE_SUNKEN是凹陷的,EDGE_RAISED是凸起的,BF_RECT是指整个矩形所有边都画//绘制扇形dc.Pie(100, 100, 300, 300, 100, 100, 200, 200);//绘制点dc.SetPixel(240, 10, RGB(0, 255, 255));//设置点的颜色dc.SetPixel(250, 10, RGB(0, 255, 255));//设置点的颜色//绘制圆弧dc.Arc(100, 100, 300, 300, 100, 100, 200, 200);dc.ArcTo(100, 100, 300, 300, 100, 100, 200, 200);//绘制弧线,从起始点到弧线//绘制多边形CPoint point[4];point[0] = CPoint(100, 100);point[1] = CPoint(200, 100);point[2] = CPoint(200, 200);point[3] = CPoint(100, 300);dc.Polygon(point, 4);//绘制多边形//绘制多个多边形CPoint point1[8];point1[0] = CPoint(100, 300);point1[1] = CPoint(200, 300);point1[2] = CPoint(200, 400);point1[3] = CPoint(100, 500);point1[4] = CPoint(300, 300);point1[5] = CPoint(400, 300);point1[6] = CPoint(400, 400);point1[7] = CPoint(300, 500);int arr[3] = { 3,4,3 };dc.PolyPolygon(point1, arr, 3);//绘制多个多边形//绘制连续的线条dc.Polyline(point1, 8);//绘制连续的线条//绘制贝赛尔曲线,最少需要4个点dc.PolyBezier(point, 4);//绘制贝赛尔曲线//绘制文本dc.TextOut(10, 10, _T("Hello World!"));//绘制文本CString str = L"你好,世界!";CRect rect(10, 50, 200, 100);dc.DrawText(str, &rect, DT_LEFT | DT_TOP | DT_SINGLELINE);//绘制文本//绘制图标int cxIcon = GetSystemMetrics(SM_CXICON);//获取系统图标宽度int cyIcon = GetSystemMetrics(SM_CYICON);//获取系统图标高度GetClientRect(&rect);//获取客户区大小int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;dc.DrawIcon(x, y, m_hIcon);::DrawIcon(dc.m_hDC, x, y, m_hIcon);//绘制图标,另一种方式//反色显示//dc.InvertRect(&rect);//也可以对图片进行反转颜色CBitmap bmp;bmp.LoadBitmap(IDB_BITMAP1);//加载位图CDC memDC;memDC.CreateCompatibleDC(&dc);//创建一个与dc兼容的内存DCmemDC.SelectObject(&bmp);//将位图选入内存DCdc.BitBlt(0, 0, 322, 439, &memDC, 0, 0, SRCCOPY);//将内存DC中的位图复制到dc中dc.InvertRect(&rect);//绘制弦dc.Chord(100, 100, 300, 300, 100, 100, 200, 200);//绘制焦点区域dc.DrawFocusRect(&rect);//设置背景颜色dc.SetBkColor(RGB(255, 255, 0));dc.TextOut(10, 10, _T("Hello World!"));//绘制文本 dc.SetBkMode(TRANSPARENT);//设置背景模式为透明,之前设置的背景就失效了dc.TextOut(10, 30, _T("Hello World!"));//绘制文本dc.SetTextAlign(TA_CENTER | TA_BASELINE);//设置文本对齐方式,水平居中,垂直基线对齐dc.TextOut(200, 30, _T("Hello World!"));//绘制文本dc.SetTextColor(RGB(255, 0, 0));//设置文本颜色dc.TextOut(200, 50, _T("Hello World!"));//绘制文本CBitmap bmp;bmp.LoadBitmap(IDB_BITMAP1);//加载位图CDC memDC;memDC.CreateCompatibleDC(&dc);//创建一个与dc兼容的内存DCmemDC.SelectObject(&bmp);//将位图选入内存DC//设置拉伸模式dc.SetStretchBltMode(HALFTONE);//HALFTONE是半色调模式,可以保证位图的质量dc.StretchBlt(0, 0, 200, 300, &memDC, 0, 0, 322, 439, SRCCOPY);//将内存DC中的位图拉伸到dc中CDialogEx::OnPaint();//调用了基类的绘图

m_hDC

设备上下文,非常核心的成员,与硬件无关的操作系统上面统一的一个绘图设备

GDI对象

画笔

默认黑色,宽度1px

		CPen pen(PS_SOLID, 2, RGB(0, 0, 255));//创建一个蓝色,宽度为2的画笔dc.SelectObject(&pen);//将画笔选入dcdc.Rectangle(10, 10, 200, 100);//绘制矩形//创建一个带虚线的画笔CPen pen1(PS_DASH, 1, RGB(0, 0, 255));//创建一个蓝色,宽度为1的带虚线画笔,如果宽度不是1,就画不出dash类型的虚线dc.SelectObject(&pen1);//将画笔选入dcdc.Rectangle(10, 120, 200, 220);//绘制矩形		CPen pen2;pen2.CreatePen(PS_DOT, 1, RGB(0, 0, 255));//创建一个蓝色,宽度为1的带点画笔,这个也是宽度1有效CPen pen3;LOGPEN logpen;logpen.lopnStyle = PS_SOLID;logpen.lopnWidth.x = 2;logpen.lopnColor = RGB(255, 0, 255);pen3.CreatePenIndirect(&logpen);//创建一个画笔,参数是一个LOGPEN结构体dc.SelectObject(&pen3);//将画笔选入dcdc.Rectangle(10, 230, 200, 330);//绘制矩形CPen* pen4 = CPen::FromHandle((HPEN)pen3.m_hObject);//将画笔转换为句柄dc.SelectObject(pen4);//将画笔选入dcdc.Rectangle(10, 340, 200, 440);//绘制矩形//恢复原来的画笔CPen* oldPen = dc.SelectObject(&pen);//将原来的画笔选入dcdc.Rectangle(10, 450, 200, 550);//绘制矩形dc.SelectObject(oldPen);//恢复原来的画笔dc.Rectangle(10, 560, 200, 660);//绘制矩形

画刷

正常画一个封闭图形,里面有个白色的区域,而整个客户区域是灰色的,这个白色区域可以修改,就是画刷
在这里插入图片描述

		CPaintDC dc(this); // 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);// 使图标在工作区矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// 绘制图标dc.DrawIcon(x, y, m_hIcon);}else{CPaintDC dc(this); // 用于绘制的设备上下文CPen pen(PS_SOLID, 3, RGB(0, 0, 255)); //创建一个蓝色、宽度为3的画笔dc.SelectObject(&pen); //将画笔选入设备上下文CRect rect(100, 100, 300, 300); //定义一个矩形//创建普通画刷CBrush brush(RGB(255, 0, 0)); //创建一个红色画刷dc.SelectObject(&brush); //将画刷选入设备上下文dc.Rectangle(rect); //填充矩形//可以创建带格式的画刷CBrush brush1(HS_BDIAGONAL, RGB(0, 255, 0)); //创建一个绿色斜线画刷dc.SelectObject(&brush1); //将画刷选入设备上下文dc.Rectangle(rect); //填充矩形//用位图创建画刷CBitmap bitmap;bitmap.LoadBitmap(IDB_BITMAP1); //加载位图CBrush brush2(&bitmap); //创建位图画刷dc.SelectObject(&brush2); //将画刷选入设备上下文dc.Ellipse(rect); //填充椭圆//用LOGBRUSHCBrush brush3;LOGBRUSH logbrush;logbrush.lbStyle = BS_SOLID;logbrush.lbColor = RGB(0, 0, 255);brush3.CreateBrushIndirect(&logbrush); //创建画刷dc.SelectObject(&brush3); //将画刷选入设备上下文dc.Rectangle(rect); //填充矩形//使用系统画刷CBrush brush4;brush4.CreateSysColorBrush(COLOR_3DLIGHT); //创建系统画刷dc.SelectObject(&brush4); //将画刷选入设备上下文dc.Rectangle(rect); //填充矩形//透明画刷CBrush brush5;logbrush.lbStyle = BS_NULL;brush5.CreateBrushIndirect(&logbrush); //创建透明画刷dc.SelectObject(&brush5); //将画刷选入设备上下文dc.TextOut(100, 100, _T("透明画刷")); //输出文本dc.RoundRect(rect, CPoint(10, 10)); //绘制圆角矩形//可以从一个句柄转换为指针HBRUSH hbrush = (HBRUSH)GetStockObject(WHITE_BRUSH);CBrush* pbrush = CBrush::FromHandle(hbrush); //转换为指针dc.SelectObject(pbrush); //将画刷选入设备上下文dc.Rectangle(rect); //填充矩形CDialogEx::OnPaint();//调用了基类的绘图

位图

创建位图,显示到dc上

		CBitmap bmp;//定义一个位图对象bmp.LoadBitmap(IDB_BITMAP1);//加载位图BITMAP bitmap;//定义一个位图结构体bmp.GetBitmap(&bitmap);//获取位图信息CDC memDC;//定义一个内存设备上下文memDC.CreateCompatibleDC(&dc);//创建与屏幕设备上下文兼容的内存设备上下文memDC.SelectObject(&bmp);//将位图选入内存设备上下文dc.BitBlt(0, 0, bitmap.bmWidth, bitmap.bmHeight, &memDC, 0, 0, SRCCOPY);//将位图从内存设备上下文拷贝到屏幕设备上下文CBitmap bmp1;bmp1.CreateCompatibleBitmap(&dc, 200, 200);//创建一个与屏幕设备上下文兼容的位图CDC memDC1;memDC1.CreateCompatibleDC(&dc);memDC1.SelectObject(&bmp1);memDC1.FillSolidRect(0, 0, 200, 200, RGB(255, 0, 0));//填充位图memDC1.TextOut(50, 50, _T("Hello World!"));//在位图上输出文本dc.BitBlt(0, 0, 200, 200, &memDC1, 0, 0, SRCCOPY);//将位图从内存设备上下文拷贝到屏幕设备上下文CImage image;image.Attach(bmp1);//将位图附加到图像对象image.Save(_T("./1.bmp"));//保存图像image.Detach();//分离图像CBitmap bmp2;bmp2.CreateDiscardableBitmap(&dc, 200, 200);//创建一个可丢弃的位图,用完会销毁,节省内存

字体

		CFont font;font.CreateFont(20,//高度0, //宽度0,//倾斜角度0,//倾斜角度FW_NORMAL, //加粗FALSE,//斜体FALSE,//下划线0,//删除线DEFAULT_CHARSET,//字符集OUT_DEFAULT_PRECIS,//输出精度CLIP_DEFAULT_PRECIS,//剪裁精度DEFAULT_QUALITY,//输出质量DEFAULT_PITCH | FF_SWISS,//输出间距和家族_T("宋体"));//字体dc.SelectObject(&font);//选择字体dc.TextOut(10, 10, _T("Hello World!"));//输出文本CFont font2;font2.CreatePointFont(100, _T("宋体"));//创建字体dc.SelectObject(&font2);//选择字体dc.TextOut(10, 100, _T("Hello World!"));//输出文本dc.TextOut(20, 200, _T("Hello World!"));//输出文本font2.DeleteObject();//删除字体CFont* font3 = GetFont();//获取当前字体LOGFONT lf;font3->GetLogFont(&lf);//获取字体信息lf.lfHeight = 50;//设置字体高度lf.lfItalic = TRUE;//设置字体为斜体lf.lfUnderline = TRUE;//设置字体为下划线CFont font4;font4.CreateFontIndirect(&lf);//创建字体dc.SelectObject(&font4);//选择字体dc.TextOut(20, 300, _T("Hello World!"));//输出文本

区域

		//区域创建1CRect rect(0, 0, 300, 100);//设置绘图区域CRgn rgn;//定义一个区域rgn.CreateRectRgnIndirect(&rect);//创建一个矩形区域dc.SelectObject(&rgn);//选择区域dc.FillRgn(&rgn, &CBrush(RGB(0, 255, 255)));//填充区域//区域创建2CRgn rgn2;//rgn2.CreateRectRgn(0, 100, 300, 200);//创建一个矩形区域rgn2.CreateRoundRectRgn(0, 100, 300, 200, 10, 10);//创建一个圆角矩形区域dc.SelectObject(&rgn2);//选择区域dc.FillRgn(&rgn2, &CBrush(RGB(255, 0, 255)));//填充区域//区域组合CRgn rgn3;rgn3.CreateRectRgn(0, 150, 300, 300);//创建一个矩形区域rgn3.CombineRgn(&rgn2, &rgn3, RGN_XOR);//区域组合,RGN_XOR为异或dc.SelectObject(&rgn3);//选择区域dc.FillRgn(&rgn3, &CBrush(RGB(0, 255, 0)));//填充区域
http://www.dtcms.com/wzjs/832488.html

相关文章:

  • 找私人做网站程序费用佛山高端网站制作
  • 怎么做加盟美容院网站红酒网络营销策划方案
  • 安徽中小企业网站建设个旧市哪里有做网站
  • 长春网站开发培训价格做网站运营需要有什么能力
  • 网站如何做IPV6支持重庆万州网站建设费用
  • 安徽建设局网站怎么查证件信息新手学做网站要花钱么
  • 网站建设推广小程序鞍山网站
  • 西山区城市建设局网站做企业门户网站
  • 重庆网站推广计划国家建设部官方网站赵宏彦
  • 网站备案帐户有什么用常用的网站类型有哪些
  • 做实体识别的网站室内装修工人培训学校
  • 个人网站如果做邯郸有学做搭建网站的吗
  • 东西湖区城乡建设局网站深圳建网站信科
  • 今网科技网站建设网站备案资料 下载
  • 桂林网站搭建如何建立自己的网站步骤
  • 中盛腾龙建设工程有限公司网站建设网站宣传
  • 科技企业网站模板wordpress 页面和文章
  • 某学校网站的安全建设方案怎样免费创建网站
  • 光明区住房和建设局网站做图标去什么网站找
  • 提供商城网站如何更改网站源码
  • 郑州加盟做网站北京手机网站建设外包
  • 合肥市建设工程信息价网站广东官网网站建设企业
  • 广东微信网站制作公司哪家好网站优化图片
  • 哈尔滨建设信息网站宝山网站建设 网站外包
  • 婚庆公司网站模板如皋市建设局网站
  • 网站开发与维护考试题目是做网站设计好还是杂志美编好
  • 微网站地图定位美食的网站建设个人总结
  • 多站点网站群的建设与管理系统企业网站开发流程
  • 创意摄影网站沈阳企业网站seo公司
  • 四川网站推广株洲人才网