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

查询网站旗下域名/抖音搜索排名优化

查询网站旗下域名,抖音搜索排名优化,网站备案修改域名ip,网站建设策划实施要素关于设备场景,叫法颇多,有些书上说为设备环境、显示场景,更常见的叫做设备描述表或设备描述体。当然你爱怎么叫随你的便,我还是喜欢说为设备场景。 那 么究竟什么是设备场景呢? 设备场景是一种windows对象,而windows则…
关于设备场景,叫法颇多,有些书上说为设备环境、显示场景,更常见的叫做设备描述表或设备描述体。当然你爱怎么叫随你的便,我还是喜欢说为设备场景。
那 么究竟什么是设备场景呢? 设备场景是一种windows对象,而windows则是一种图形环境,其图形系统令人难以自信地灵活和强大。而实质上,widnows下的所有绘图都是 通过设备场景进行的,而不是直接对窗口和设备本身进行。为了说明设备场景,很多书都拿一些现实生活中的现象来进行对照说明。其中,最常见的是把它比喻为一 位画家在作画。我想大家都看过画家是如何画画的,最起码是在电影里或者是在道旁的广告牌上作画的画家。我们可以想象一下∶有个风景秀丽的白云山(是我瞎起 的名)上,有位画家一只手拿着调色板,另一只手则拿着画笔,面对一个画板正在写风景画。有些书认为画家的调色板相当于设备场景,有些书则认为画板相当于设 备场景,说法不一。鉴于这种情况,我认为还是直接去说明设备场景比较好。

作为windows的对象,设备场景实际上是一种windows内部的数据结构。就象pointapi数据结构具有x和y两个属性一样,设备场景同样具有着它自身的属性,只是属性比较多而已,如下表∶

设备场景属性

属 性 默 认 值
背景色(background color) 白色(white)
背景模式(background mode) 不透明(opaque)
位图(bitmap)无(none)
刷子(brush)白色刷子(white brush)
刷子起点(brush origin) 0,0
剪切区(clipping region) 整个窗口或设备表面(entire window or device surface)
调色板(color palette) 默认调色板(default palette)
画笔位置(pen position) 0,0
绘图模式(drawing mode) r2_copypen
字体(font) 系统字体
字间距(intercharater spacing) 0
影射模式(mapping mode) mm_text
画笔(pen) 黑色(black)
多边形填充模式(mapping mode) alternate
伸缩模式(stretching mode) blackonwhite
文本色(text color) 黑色(black)
视口起点(viewport origin) 0,0
视口范围(viewport extents) 1,1
窗口起点(window origin) 0,0
窗口范围(window extents) 1,1
请你多看看这张表,对设备场景都有哪些属性,脑子里应当有个印象。事实上,设备场景的很多属性对应于vb中 的form、picturebox、text等窗体或控件的属性。比如,字体、背景色、绘图模式等等。可想而知,很多学vb的朋友尽管并不知道什么叫设备 场景,但实质上都不知不觉地使用了设备场景。可以说,设备场景是windows编程中最重要的概念之一。
对于设备场景,有些朋友可能一时不大好理解,这很自然,不用担心谁都是一样。不知对你能否作为一个帮助,我是把设备场景想象成一种配套的(包括画板、调色 板、画笔、刷子等)的绘画工具。其中画板是最重要的,其他的东西都是为这个画板服务的。如过你创建了一个设备场景,就等于是你从百货商店买来了这一套绘画 工具,从而具备了绘画的条件。但,你的房间总不是那么宽敞的。为了继续绘出别的画、继续购买新的绘画工具,无用的工具应当及时清理掉。因为设备场景本身是 占用内存的。不要担心这会降低运行速度,对计算机来说创建一个设备场景,再删掉一个设备场景,那都是瞬息之间的事情,根本谈不上什么浪费时间,绝对不像跑 一趟百货商店那么麻烦、费时。对于绘图,你应当认识的一点是,绘图并不是简单地指绘画,输出文本也是一种绘图过程。尽管如此,api函数中图形函数与文本 函数大体都是各自各的。绘画和写文本都是在同样的设备场景中进行,这一点很重要。
我想,你大概还是没有理解好,不过没有关系,继续往下看好了。本节中请记住一点∶

widnows下的所有绘图都是通过设备场景进行的。


一、设备环境(Device Context)(设备上下文)

    设备上下文DC是一个Windows数据结构,它包含了某个设备的绘制属性。通常,绘制调用都是借助于上下文对象,而这些设备上下文对象封装了用于画线、形状、文本等的Windows API。设备上下文是设备无关的,所以它既可以用于绘制屏幕,也可以用于绘制打印机甚至元文件。设备上下文在内存中创建,而内存经常受到扰动,所以它的地址是不固定的。因此,一个设备上下文句柄不是直接指向设备上下文对象,而是指向另外一个跟踪设备上下文地址的指针。

    我个人认为设备上下文相当于画图过程中的画布(画纸),在VC中,这个画布可以是显示器,也可以使打印机,设备上下文决定了画布的属性,而且封装了在画布上画画的方法,比如画线,画点,等等,例如: pDc->LineTo(512,0); //从左下角到右上角的一条红色直线 。我们在VC中画图时,首先要得到这块画布才可以画画,所以要进行获取设备环境。

     1、常见设备上下文及区别:CClientDC,CPaintDC,CWindowDC

CClientDC:(客户区设备上下文)用于客户区的输出,与特定窗口关联,可以让开发者访问目标窗口中客户区,其构造函数中包含了GetDC,析构函数中包含了ReleaseDC。只能在客户区绘制图形。

CPaintDC:只能在客户区绘制图形。(1)CPaintDC类是CDC类的一个派生类,该类一般用在响应WM_PAINT消息的函数OnPaint()中。(2)WM_PAINT消息是当窗口的某个区域需要重画时激发的窗口消息。当程序中的消息循环接到WM_PAINT消息时就自动调用消息处理函数OnPaint(),如果在OnPaint函数内定义了CPaintDC类的对象,通过这个类对象就可以使用CDC类的成员函数完成视图客户区中的图形绘制操作。(3)CPaintDC用于响应窗口重绘消息(WM_PAINT)时的绘图输出。CPaintDC在构造函数中调用BeginPaint()取得设备上下文,在析构函数中调用EndPaint()释放设备上下文。EndPaint()除了释放设备上下文外,还负责从消息队列中清除WM_PAINT消息。因此,在处理窗口重画时,必须使用CPaintDC,否则WM_PAINT消息无法从消息队列中清除,将引起不断的窗口重画。CPaintDC也只能用在WM_PAINT消息处理之中。

CWindowsDC:(1)可在非客户区绘制图形,而CClientDC,CPaintDC只能在窗口的客户区绘制图形。(2)坐标原点是在窗口的左上角,CClientDC,CPaintDC下坐标原点是在客户区的左上角。

下面介绍一下获得这块画布的方法,即获取设备上下文的方法:

1、通过OnDraw()函数获得CPaintDC:在OnDraw()函数中入口参数CDC *pDC,传入这即操作的设备上下文,这个上下文既是CPaintDC。他是通过OnPaint()构建,并传入OnDraw(),View类如果没有重载OnPaint(),则窗口刷新时自动调用MFC底层代码的OnPaint()函数,从而调用OnDraw()。我们就可以通过OnDraw()在客户区进行初始化的绘制。

2、通过CClientDC,CPaintDC,CWindowDC定义一个DC。

例如:CClientDC dc(this);创建一个dc,在当前对象的客户区。创建一个CWindowDC类的对象:CWindowDC dc(this);

3、通过HDC GetDC(HWND hWnd);hWnd:设备上下文环境被检索的窗口的句柄,如果该值为NULL,GetDC则检索整个屏幕的设备上下文环境,返回值是hdc,即一个DC描述符,入口参数是一个窗口类型的句柄。

例如: pWnd=GetDlgItem(IDC_STATIC_PIC); //IDC_STATIC_PIC是对话框图片空间的一个标识号
           pWnd->SetWindowPos(NULL,0,0,512,120,SWP_NOZORDER|SWP_NOMOVE); //调整长宽为(512,120)
           pDc=pWnd->GetDC();

二,GDI及GDI函数

    GDI对象就是绘画时用的工具,比如画笔,画刷,字体,位图,调色板。如果绘图的时候,需要先把相应的GDI设备选入设备环境,就是为画图选个画笔,工具。

注意MFC中,GDI和CDC是两个独立的类


http://www.lbrq.cn/news/844111.html

相关文章:

  • wordpress+php调优/seo是什么
  • 学做宝宝辅食的网站/怎么做公众号
  • 网站功能简介/快速seo关键词优化技巧
  • 互联网公司怎么找网站建设客户/站长之家网站流量查询
  • 如何制作课程网站模板下载/百度网页游戏大厅
  • 佛山网站建设网站建设/营销软文范例大全100
  • 建设政府信息资源共享网站/百度收录网站要多久
  • 台州关键词优化哪家好/河南企业站seo
  • 海外社交媒体营销/郑州seo技术服务顾问
  • 东莞网站建设方案托管/十大软件免费下载网站排行榜
  • 官网苹果14/seo零基础视频教程
  • 免费b2b网站大全免费网站免登录网页/三亚百度推广公司
  • 新手做电影网站/百度学术搜索
  • 网站建设与运营策划书/seo推广优化公司哪家好
  • wordpress网站数据库存在哪里/网络广告营销对应案例
  • 广州电商网站开发公司/免费制作网站平台
  • 网站建设logo要什么格式/企业网站seo案例
  • 如何设计制作一般企业网站/广告推广策划
  • 东莞品牌营销型网站建设/指数函数和对数函数
  • 网站开发项目运营经理岗位职责/中国站长之家
  • 公司网站建设华为/2022年度关键词
  • 怎么制作网页调查问卷/seo黑帽是什么
  • 做网站一般图片的比例/网站排名查询工具
  • 网站建设在哪里备案/网络营销推广策划步骤
  • 制作视频的免费软件/seo查询工具网站
  • 阿里做网站/品牌策划方案案例
  • 石家庄网站建设电话/市场推广方案范文
  • 深圳住房和建设局网站认租申请/软文网站发布平台
  • 怎么给自己做网站吗/seo会被取代吗
  • 全屏响应式网站模板/个人开发app可以上架吗
  • Linux部署Python服务
  • 焊接机器人智能节气阀
  • 进程探秘:从 PCB 到 fork 的核心原理之旅
  • ethers.js-5–和solidity的关系
  • C++ 中常见的字符串定义方式及其用法
  • C++卸载了会影响电脑正常使用吗?解析C++运行库的作用与卸载后果