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

免费做公司网站能在百度上搜索的到大连企业黄页电话

免费做公司网站能在百度上搜索的到,大连企业黄页电话,做网站css代码,黑龙江专业建站文章目录 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/524896.html

相关文章:

  • 网站怎么做的厦门seo推广优化
  • 德州聊城网站建设网页制作网站
  • 网站怎么做跳转链接湖南长沙最新情况
  • 韩国风格网站模板下载google引擎免费入口
  • 网站平台建设调研报告重庆做seo外包的
  • 网站建立网站买了500元黑科技引流靠谱吗
  • 网站建设岗位任职资格百度新闻网站
  • 公司宣传网站建站公司产品推广文案
  • 自己做网站大概需要多少钱如何建立独立网站
  • 四川建设人员数据网站google seo优化
  • 网站群建设规范深圳seo优化公司哪家好
  • 百度上搜不到网站推广网络推广平台
  • 潮州移动网站建设深圳网站优化培训
  • 使用阿里云建网站百度查询入口
  • 上海专业网站建设费网站排名优化师
  • 策划行业网站站长分析工具
  • cc域名做网站怎么样百度统计网站
  • 甘肃手机网站建设新seo排名点击软件
  • 1688是什么平台太原seo关键词排名
  • 东莞南城做网站推广的公司小型培训机构管理系统
  • 大众点评网站模板搜索引擎推广与优化
  • 怎样做企业网站建设厨师培训机构
  • 网络架构模拟器上海免费关键词排名优化
  • 杭州萧山网站建设河北软文搜索引擎推广公司
  • 手机网站用什么软件seo公司培训课程
  • 网络营销软件推广注册赚钱seo的中文名是什么
  • 珠海市官网网站建设价格seo整体优化步骤怎么写
  • 招聘网站代做常见的网络营销方式
  • 非政府组织网站的建设互联网服务平台
  • 最新军事新闻事件报道seo推广怎么样