欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C++编程中Windows图像编程概要.pdf

    • 资源ID:70343733       资源大小:25.70KB        全文页数:15页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++编程中Windows图像编程概要.pdf

    C+编程中W i n d o w s 图像编程概要(2 0 0 6-0 8-2 1)-C S D N -最近更新()牋图形设备接口(G D I,G r a p h i c s D e v i c e I n t e r f a c e)的主要目标之一是支持在输出设备(如视频显示器、打印机和绘图仪)上的与设备无关的图形。G D I 通过将应用程序与不同输出设备特性相隔离,使W i n d o w s 应用程序能够毫无问题地在W i n d o w s 支持的任何图形输出设备上运行。W i n d o w s 中的图形基本上是由从G D I E X E 模块中输出的函数处理的(尽管一些绘制函数实际上具有U S E R E X E 的入口点),G D I E X E 模块调用在不同驱动程序文件中的例程,其中有一个D R V 驱动程序文件用于控制显示屏幕,并且可能有一个或多个其他的D R V 驱动程序文件用来控制打印机或绘图仪。W i n d o w s G D I 使用两种坐标系统。使用虚拟坐标系统可以使程序不依赖于具体的硬件,使用设备坐标系统可以使程序和硬件紧密相联。G D I 含有在W i n d o w s 应用程序内部执行、且与设备无关的图形操作函数,这些函数可产生各种各样的线、正文和位图,它们可以输出到许多不同的输出设备上。G D I 允许一个应用程序产生笔、刷子、字体和位图,以供特定的输出操作使用。下面列出G D I 中几组比较常用的函数:设备上下文函数 椭圆和多边形函数 绘图工具函数 位图函数 绘图属性函数 正文函救 映射函数。坐标函数 元文件(m e t a f i l e)函数 区域函数 裁剪(c l i p p i n g)函?窗口应用程序输出图形的操作步骤如下:取得指定窗口的当前显示设备上下文,显示设备上下文实际上是一个数据结构,它包括该窗口的参数及各种图形、文字属性的现行设定值,它们对以后的图形、文字输出命令起控制作用。选择用户坐标系及映射方式。设定用户坐标系中的观察窗口和设备坐标系中的显示视区。输出图形、文字和图象。释放所使用的显示设备上下文。当想要在图形输出设备(例如屏幕或打印机)上绘制图形时,必须首先获得设备上下文的句柄。先给出这个句柄,W i n d o w s 才允许程序使用设备,在G D I 函数中将句柄作为一个参数传入,向W i n d o w s标明需要使用的设备。设备上下文中包含许多属性,当G D I 在不同的设备上工作时都要用到这些属性。使用这些属性可使G D I 只关心起始和终止坐标的大小,而不必关心有关对象的其他属性,如颜色、背景等等,因为这些都是设备上下文的一部分。当需要修改这些属性时,只需调用一个修改设备上下文中属性的参数,以后的程序中都使用修改后的设备上下文属性。设备上下文是连接W i n d o w s 应用程Page 1/15http:/www.chinavideo.org序、设备驱动程序以及输出设备的纽带。获取设备上下文句柄有多种方法。最一般的方法是当处理一条消息时获得了设备 上下文、并在退出窗口之前释放它。一般的处理方法如下:在处理W M _ P A I N T 消息时 c a s e W M _ P A I N T:h d c=B e g i n P a i n t(h w n d,&p s)/代码 E n d P a i n t (h w n d,&p s);其数据结构为:H D C h W n d;P A I N T S T R U C T p s;而在w i n d o w s h 中定义了P A I N T S T R U C T 的数据结构。t y p e s t r u c t t a g P A I N T S T R U C T H D C h d C;B O O L f E r a s e;R E C T r c P a i n t;B O O L f R e s t o r e;B O O L f l n c U p d a t e;B Y T E r g b R e s e r v e d 1 6 ;P A I N T S T R U C T;其中,h d c 用于标识显式上下文,f E r a s e 指出背景是否重画,r c P a i n t 是涂色矩形,其余的域均为保留。这里的h d c 是B e g i n P a i n t 返回的设备上下文句柄,有了从B e g i n P a i n t 获取的设备上下文句柄,就可以也只能在p s 指出的r c P a i n t 的矩形内绘图,E n d P a i n t 调用使这一区域有效。第二种方法如下所示,使用这种方法获取和释放设备上下文可以在整个用户区内画图,图形在整个用户区域内都有效:h d C G e t D c (h w n d );画图操作 R e l e a s e D C (h w n d ,h d c );使用下面第三种方法获取和释放设备上下文,可以在整个窗口内画图,图形在整个窗口内有效:Page 2/15http:/www.chinavideo.orgh d C=G e t W i n d o w D c(h w n d);画图操作 R e l e a s e D c(h w n d,h d c);使用下面第四种方法获取和释放设备上下文,可以在整个显示器区域内画图,图形在整个显示器区域内部有效:h d c C r e a t e D C (l p s z D r i v e r ,l p s z D e v i c e ,l p s z O u t p u t ,l p D a t a);画图操作 R e l e a s e D C(h d c);其中l p s z D r i v e r 指向设备驱动程序的D O S 文件名(不带扩展名),l p s z D e v i c e 指向专用设备名(例如E p s o n F x-8 0),l p s z O u t p u t 指向物理输出介质(文件或输出端口)的D O S 文件名或设备名,l p D a t a 指向含有设备驱动程序的设备专用的初始化数据的D E V M O D E 数据结构。例如:h d c C r e a t e D C(D I S P L A Y ,N U L L,N U L L,N U L L);使用屏幕画图,而:h d c=C r e a t e D C (I B M G R X ,I B M G r a p h i c s ,L P T 1 ,N U L L );在打印机上输出图形,这里的l p D a t a 置为默认值,可以在W I N I N I 中找到初始化值。如果不需要获取设备上下文,即不需要在设备上下文中操作,只需了解有关设备上 下文的信息,可以用如下语句:h d c I n f o C r e a t e D C (l p s z D r i v e r,l p s z D e v i c e,l p s z O u t p u t,l p D a t a );D e t e t e D C (h d c I n f o);另外,还可以使用设备上下文来对位图的内存进行控制,如下所示:h d c M e m C r e a t e C o m p a t i b l e D C (h d c)D e l e t e D c(h d c M e m );一个元文件是以二进制形式编码的G D I 调用集合,可通过获取一个元文件设备上下文来建立一个文件:h d c M e t a=C r e a t e M e t a F i l e(l p s z F i l e n a m e);h m f=C l o s e M e t a F i l e(h d C M e t a);在元文件设备上下文有效期间,使用h d c M e t a 所进行的任何G D I 调用都成为元文件的一部分,当调Page 3/15http:/www.chinavideo.org用C l o s e M e t a F i l e 时,设备上下文句柄变化无效,函数返回元文件(h m f)的句柄。一个设备上下文通常涉及物理设备,如视频显示器、打印机等,所以需要获取有关该设备的信息,如显示器大小和彩色能力等。可以通过调用G e t D e v i c e C a p s 函数来获取这样的信息:n V a l u e=G e t D e v i c e C a p s (h d c,n I n d e x);这里的h d c 标识设备上下文,n I n d e x 确定返回值,它可以是w i n d o w h 中所定义的2 8 个标识符中的一个,例如n I n d e x=D R I V E V E R S I O N,则该函数返回的是版本号。真正影响在用户区域上绘制过程的设备上下文属性是“映射方式”,与映射方式属性密切相关的还有如下四个设备上下义属性:窗口原点、视窗原点、窗口范围和视窗范围。W i n d o w s 定义了八种映射方式。可以调用函数s e t M a p M o d e(h d c,M a p M o d e)来设置这八种映射方式中的一种。h d c 用来标识设备上下文,n M a p M o d e 可以取M M _ T E X T、M M _ L O M E T R I C、M M _ H I M E T R I C 等八个中的一个。在设置了映射方式之后,到下一次设置映射方式之前,W i n d o w s 一直使用 这种映射方式。如果想要获取当前的映射方式,可用:n M a p M o d e G e t M a p M o d e (h d c)在设置了映射方式之后,就规定了逻辑单位的大小和增量的方式,在G D I 画图函数中,可以不必考虑这些内容而直接使用逻辑数字,如:S e t M a p M o d e(h d c ,M M _ T E X T);T e x t O u t(h d c,8 ,1 6,s z B u f f e r ,n L e n g t h)即正文从用户区域左起第八个象素,顶边起第1 6 个象素的位置开始写操作。不管映射方式如何,W i n d o w s 函数中所有坐标规定为3 2 7 6 8 到 3 2 7 6 7 之间的带符号短整救。注意映射方式只是一个设备上下文属性,因此映射方式唯一起作用的是将映射方式作为设备上下文句柄属性,而将该句柄当作参数的G D I 函数,因此象G e t S y s t e m M e t r i c s 这样的非G D I 函数,将继续以设备单位(象素值)返回尺寸值。用G D I 的S e t P i x e l 函数可以绘制一特定颜色的象素:r g b A c t u a l C o l o r S e t P i x e l (h d c,x,y,r g b C o l o r);这里h d c 标识设备上下文,x ,y 表示点坐标,r g b C o l o r 为一无符号的长整数,其结构为:C O L O R R E F r g b C o l o r;其中低位字节为红基色的相对亮度值,第二个字节包含绿基色的相对亮度值,第三个字节包含蓝基色的相对亮度值,高位字节必须为零。可以使用R G B 函数来获取r g b C o l o r。r g b C o l o r R G B(b y R e d ,b y G r e e n,b y B l u e);这里的b y R e d、b y G r e e n、b y B l u e 取值范?0 2 5 5,分别代表红色、绿色、蓝色的亮度。给出正确的参数之后,S e t P i x e l 返回的是调色板中最靠近所需彩色的颜色。还可以使用如下方法来取得一个特定象素的颜色:r g b C o t o r=G e t P i x e l(h d c,x,y);画线函数主要有三种,L i n e T o、P o l y l i n e 和 A r c。还有五个设备上下文属性会影响这些函数画出的线的外观:笔的当前位置(仅对L i n e T o 有影响)、笔、背景方式(对非实心笔有影响)、背景颜色(对 O P A Q U E 背景方式)以及绘制方式。在这些设备上下文的属性中,笔的当前位置影响画线的起点,笔影响线的粗细等形状,背景方式影响非实心笔画出的线的模板图形,背景颜色影响线模板背景色,绘制方式影响实心线、虚线等线属性。Page 4/15http:/www.chinavideo.org以下是典型的画线操作步骤:M o v e T o(h d c,x S t a r t,y S t a r t);L i n e T o(h d c ,x E n d ,y E n d);上面两句画出一条从(x S t a r t,y S t a r t)到(x E n d,y E n d)的直线。可以使用语句:d w P o i n t G e t C u r r e n t P o s i t i o n (h d c);获得笔的当前位置。这里,d w P o i n t 返回值是一个无符号长整数(或双倍长字),其中低位字含有X 坐标,高位字含有Y 坐标。可以使用M A K E P O I N T 函数将d w P o i n t 转换为P O I N T 结构;p o i n t =M A K E P O I N T (d w P o i n t);p o i n t 的类型为P O I N T:t y p e d e f s t r u c t t o g P O I N T k k 1 i n t x;i n t y;P O I N T;P o l y l i n e 用于绘制折线,例:P o l y l i n e(h d c,&p t,5)将数组p t 中的5 个点之间用线段相连。A r c 用于画椭圆的周边:A r c (h d c,x L e f t,y T o p,x R i g h t,y B o t t o m,x S t a r t,y S t a r t,X E n d,y E n d );画出的椭圆以左上角为(x L e f t,y T o p),右下角为(x R i g h t,y B o t t o m)的矩形为界,圆弧开始于椭圆和(x S t a r t,y S t a r t)与椭圆中心的连线的交点处,沿着椭圆周边的过时针方向绘制,并终止于椭圆和(x E n d,y E n d)与椭圆中小的连线的交点处。当调用L i n e T o、P o l y l i n e 和A r c 时,W i n d o w s 使用当前在设备上下文中选择的笔来画线,笔决定了线的颜色、密度和型式,而线型可以是实线、点线或短划(虚)线,缺省设备上下文中的笔叫做B L A C K _ P E N,不管映射方式如何选支笔以一个象素的宽度画黑色的实线,B L A C K _ P E N 是W i n d o w s 提供的三支“备用笔”之一,其他两支是W H I T E _ P E N和N U L L _ P E N,N U L L _ P E N 是一支什么都不画的空笔,当然用户也可以自己建立定制的笔。可以通过一个句柄来引用所需的笔:H P E N h P e n;h P e n G e t S t o c k O b j e c t(W H I T E _ P E N);S e l e c t O b j e c t(h d c ,h P e n);Page 5/15http:/www.chinavideo.org调用G e t S t o c k O b j e c t 获得一支备用笔(W H I T E _ P E N)的句柄,调用S e l e c t O b j e c t 使这支笔成为设备上下文中当前选择的,用C r e a t e P e n 或C r e a t e P e n I n d i r e c t 函数建立一支“逻辑笔”,这逻辑笔只是一支笔的描述。h P e n =C r e a t e P e n (n P e n S t y l e ,n W i d t h ,r g b C o l o r );其中n P e n S t y l e 参数确定笔是绘制实线还是由点或短划组成的线。该参数可取下 列标识符之一:P S _ S O L I D、P S _ D A S H、P s _ D O T、P S _ D A S H D O T、P S _ D A S H D O T D O T。n W i d t h 表示笔宽(采用逻辑单位),r g b C o l o r 表示笔的颜色,如果函数执行成功,则返回值标识一支逻辑笔,否则返回值为N U L L。另外还有一种方法来建立逻辑笔:t y p e d e f s t r u c t t a g L O G P E N k k 1 P O I N T l o p n W i d t h;C O L O R R E F l o p n C o l o r;L O G P E N;以上是W i n d o w s h 中对L O G P E N 结构的定义。l o p n S t y l e 规定笔的型式,l o p n W i d t h 规定笔的宽度,l o p n C o l o r 规定笔的颜色。然后将l o g p e n 定义为L O G P E N 类型:L O G P E N l o g p e n;再使用h P e n C r e a t e P e n l n d i r e c t (l o g p e n);就可以建立自定义的笔了。因为用以上两种方式建立的笔不是设备上下文有关的,所以可以同时建立多支笔,并用多支笔画图。h p e n l C r e a t e P e n(P S _ S O L I D,1,0 L);h p e n 2 C r e a t e P e n(P S _ S O L I D,3,R G B(2 5 5,0,2 5 5),s e l e c t O b j e c t (h d c ,h p e n l )/L i n e T o 调用 S e l e c t O b j e c t (h d c ,h p e n 2 )/P o l y l i n e 调用 D e l e t e O b j e c t(h p e n l);D e l e t e O b j e c t(h p e n 2);在点线笔和短划笔的空隙间的着色取决于设备上下文中定义的背景方式和背景颜色这两种属性。缺省的背景方式是 O P A Q U E ,即用背景颜色来填充空隙,缺省的背景颜色是白色。可用:S e t B k C o l o r (h d c,r g b C o l o r );来改变填充空隙的背景颜色。可用:S e t B k M o d e(h d c,m o d e);来改变背景方式,这里的m o d e 可为O P A Q U E 或T R A N S P A R E N T。在设备上下文中可设置口种新的绘制方式。n D r a w M o d e 参数定义绘制方式。可用下列函数获得当前绘制方式:Page 6/15http:/www.chinavideo.orgn D r o w M o d e G e t R o p 2 (h d c);使用这种绘制方式实际上是在笔的象素和目标显示表面的象素之间执行一种逐位布尔运算。下面列出了W i n d o w s 的六个函数,用于绘制带有边框的填充区域:R e c t a n g l e,带有方形角的矩形 E l l i p s e,椭圆 R o u n d R e c t,带有圆形角的矩形 C h o r d,在椭圆周边上的弧,其断.点用一条弦相连接 P i e,在椭圆周边上的饼形楔 P o l y g o n,多边形 P o l y P o l y g o n,多个多边形 图形要用设备上下文中选择的当前刷子进行填充,例:H B R U S H h B r u s h;h B r u s h G e t S t o c k O b j e c t(G R A Y _ B R U S H)S e l e c t O b j e c t (h d c,h B r u s h)对于矩形填充对象,使用:R e c t a n g l e(h d c,x L e f t,y T o p,x R i g h t,y B o t t o m);点(x L e f t,y T o p)是矩形的左上角,而(x R i g h t,y B o t t o m)是右下角(这两点均以逻辑坐标给出)。同时还要考虑这两点坐标的合理性,例如,在M M _ T E X T 映射方式下,x R i g h t 必须大于x L e f t,y B o t t o m 必须大于y T o p。对于椭圆填充对象,使用:E l l i p s e(h d c,x L e f t,y T o p,x R i g h t,y B o t t o m);画圆角矩形的填充对象,使用:R o u n d R e c t (h d c,x L e f t,y T o p,x R i g h t,y B o t t o m,x C o r n e r E l l i p s e,y C o r n e r E l l i p s e);r g b C o l o r 为指定刷子的前景颜色,即阴影线的颜色。第三种方法:h B r u s h =C r e a t e P a t t e r n B r u s h (h B i t m a p );本函数建立一把具有由h B i t m a p 参数指定图案的逻辑刷子,该刷子以后可被任何支持光栅操作的设备所选用。h B i t m a p 标识位图,该位图可用函数C r e a t e B i t m a p、C r e a t e B i t m a p I n d i r e c t、L o a d B i t m a p 或C r e a t e C o m p a t i b l e B i t m a p 创建。用于填充图案的位图的最小尺寸为8 8。Page 7/15http:/www.chinavideo.org第四种方法:h B r u s h =C r e a t e B r u s h I n d i r e c t (&l o g b r u s h )变量l o g b r u s h 为一个L O G B R U S H(“逻辑刷”)类型的结构。建立了逻辑刷子之后,可以使用:S e l e c t O b j e c t (h d c ,h B r u s h );将逻辑刷送入设备上下文中。如果使用结束,可以用:D e l e t O b j e c t (h B r u s h );删除一把已建立的刷子,如果在程序中需要获取有关于刷子的信息,则可以调用:G e t O b j e c t (h B r u s h ,s i z e o f (L O G B R U S H ),(L P S T R )&(l o g B r u s h );其中l o g b r u s h 为一个L O G B R U S H 类型的结构。前面提到使用位图作为逻辑刷子的图案,这样就需要一个位图的句柄。位图必须至少是8 象素高和8 象素宽,如果位图太大,W i n d o w s 就取位图的左上部分作为刷子。获取位图句柄也有四种方法。获取位图句柄的第一种方法是:首先用W i n d o w s 提供的S D K P A I N T 生成一个位图文件(扩展名为B M P),并把文件名包括在资源文件(r c 文件)中的一个B I T M A P 语句中,如:l p s z B i t m a p B I T M A P B i t m O P N a m e B m p (假设S D K P A I N T 中产生的位图名为B i t m a p N a m e B m p),然后将位图装入:h B i t m a p =L o a d B i t m a p (h I n s t a n c e ,l p s z B i t m a p );这里h B i t m a p 即为位图句柄。第二种获取位图句柄的方法是:h B i t m a p=c r e a t e B i t m a p(n W i d t h,n H e i g h t ,n P l a n e s ,n B i t s P i x e l,l p B i t s);本函数可生成一个具有指定的宽度、高度和位图案(b i t p a t t e r n)并与设备有关的内存位图。其中的参数n W i d t h 指定位图的宽度(以象素为单位),n H e i g h t 指定位图的高度(也以象素为单位),n P l a n e s 指定位图中的彩色位平面的个数,每个彩色位平面有n W i d t h X n H e i g h t X n B i t s P i x e l 位。n B i t s P i x e l 指定每个显示象素的颜色位数。l p B i t s 指向一个含有初始位图位值的短整型数组,它的值与B I T M A P 结构中的b m B i t s 值相类似,有关B I T M A P 结构的内容已在前面的章节中提到。第三种获取位图句柄的方法:h B i t m a p=C r e a t e C o m p a t i b l e B i t m a p (h d c,n W i d t h,n H e i g h t);本函数生成一个与由h d c 参数指定的设备相兼容的位图,此位图具有与其他设备相同数值的彩色位平面或相同的每象素位数的格式。它的彩色信息同样由h d c 指定的设备所确定。h d c 标识设备上下文,n W i d t h 和n H e i g h t 分别指定位图的宽和高(以位数表示)。第四种获取位图句柄的方法:h B i t m o p C r e a t e B i t m a p I n d i r e c t (b i t m a p):Page 8/15http:/www.chinavideo.org本函数生成一个具有由l p B i t m a p 参数所指定的数据结构给出的宽度、高度和位图图案的位图。这里的b i t m a p 的结构为B I T M A P 类型。当拥有一个位图句柄之后,还可以调用:G e t O b j e c t(h B i t m a p,s i z e o f(B I T M A P),(L P S T R)b i t m a p);来获得有关位图的信息,这里返回的b i t m a p 为一个B I T M A P 类型的结构。还可以调用:G e t B i t m a p B i t s (h B i t m a p,d w C o u n t,l p B i t s);将位图h B i t m a p 的d w C o u n t 个字节复制到地址为l p B i t s 的数组中。同样还可以使用S e t B i t m o p B i t s (h B i t m a p,d w C o u n t,l p B i t s);将 l p B i t s 标识的彩色位值放置到 h B i t m a p 标识的位图中去。当W i n d o w s 用刷子填充一个区域时,它在水平和垂直两个方向上重复地使用8 8 位图,刷子的外观可能会有细微的变化,这取决于W i n d o w s 如何将位图的左上角与显示表面对齐,设备上下文中将这种对齐的属性称为“刷子原点”。大多数情况下,绘图时不必如此精细地调整刷子原点;但在某种情况下,为了产生某种特定的视觉效果,需要这么做。可以通过下面步骤来达到这个效果:对刷子调用U n r e a l i z e O b j e c t(但不能对备用刷子调用U n r e a l i z e O b j e c t);U n r e a l i z e O b j e c t(h O b j e c t );此函数表示G D I 在下次给定的刷子被选中时,使它的原点复位。用S e t B r u s h O r g 设置刷子原点:B r u s h O r g S e t B r u s h O r g(h D c,x ,y);。此函数用于设置当前选人给定的设备上下文中的刷子的原点。其中,h D c 标识设备上下文,x 规定新原点的x 坐标(采用设备坐标),该值范围必须在0 7 之间,y 规定新原点的y 坐标(采用设备坐标),该值范围必须在0 7 之间,该函数返回一个双字,先前的x 坐标放在低位字,先前的y 坐标放在高位字。除了画点、画线、区域填充这些绘图函数之外,W i n d o w s 还包括几个附加的绘图函数,用以处理R E C T(矩形)结构和“区域”,区域是屏幕的一个由矩形、其他多边形和椭圆组合而成的部分。F i l l R e c t(h d c ,r e c t,h B r u s h);此函数是用选定的刷子填充给定的矩形,F i l l R e c t 函数填充整个矩形,还包括左边线和顶边线,但不包括右边线和底边线。h d c 标识设备上下文,r e c t 为R E C T 数据结构类型,此数据结构存放要填充的矩形的逻辑坐标。h B r u s h 用来标识填充此矩形的刷子。F r a m e R e c t (h d c ,r e c t);本函数在 l p R e c t 参数指定的矩形周围画出一个边框,F r a m e R e c t 函数采用给定的刷子绘制边框,边框的高和宽总是用逻辑单位表示。h d c 标识窗口的设备上下文,r e c t 标明左上角和右下角的逻辑坐标,h B r u s h 标识画矩形边框用的刷子。I n v e r t R e c t (h d c,r e c t);该函数反视频显示给定矩形的内容。前面提到的r e c t 可用以下语句取得:S e t R e c t(r e c t,x L e f t,y T o p,x R i g h t,y B o t t o m);区域用以描述显示器上的一个由矩形、其他多边形和椭圆组合而成的部分、可以用区域进行绘制或裁剪。Page 9/15http:/www.chinavideo.org可用:h R g n C r e a t e R g n(x L e f t,y T o p,x R i g h t,y B o t t o m);或 h R g n C r e a t e R e c t R g n I n d i r e c t (r e c t );来建立矩形区域,也可以用:h R g n=C r e a t E l l i p s e R g n (x L e f t,y T o p,x R i g h t,y B O t t o m);或:h R g n C r e a t e E l l i p s e R g n I n d i r e c t (r e c t);来建立椭圆形区域;还可以用:h R g n C r e a t e P o l y g o n R g n (U p o i n t,n C o u n t,n P o l y F i l l M o d e);来建立多边形区域,用:h R g n C r e a t e R o u n d R e c t R g n(x l,y l,x 2,y 2,x 3,y 3);来建立一个带有圆角的矩形区域,(x l,y 1)表示区域左上角,(x 2,y 2)表示区域右下角,x 3和y 3 分别用于指定产生圆角的椭圆的宽度和高度。各个特定区域的句柄产生之后,还可以使用:n R g n T y p e=C o m b i n e R g n (h D e s t R g n,h S r c R g n l,h S r c R g n 2,n C o m b i n e);通过组合两个已存在区域而产生一个新的区域。组合区域的方法由n C o m b i n e 参数加以说明:这里的h S r c R g n l 和h S r c R g n 2 标识两个已存在的区域,h D e s t R g n 标识将被新区域替换的作为目标的已存在区域。一个区域用完后,可用D e l e t e O b j e c t(h R g n)删除它。F l o o d F i L L (h d c,x S t a r t,y S t a r t,r g b C o l o r);本函数用当前刷子填充显示表面的一个区域,该区域假定由r g b C o l o r 多数指定的颜色边界确定,F l o o d F i l l 函数由x S t a r t,y S t a r t 参数指定的,点开始向各个方向进行填充,直到颜色边界为止。E x t F L o o d F i l l(h d c,x S t a r t,y S t a r t,r g b C o l o r,w F i l l );此函数用当前刷子填充显示表面上的某一区域,若w F i l l 被设置成F L O O D F I L L B O R D E R,此区域将完全用r g b C o l o r 设定的颜色作为边界,E x t F l o o d F i l l 从(x S t a r t,y S t a r t)点开始向各个方向填充,直到该颜色边界为止。若w F i l l 被设置成F L O O D F I L L S U R F A C E,Page 10/15http:/www.chinavideo.org则E x t F L O O D F I L L 函数从(x S t a r t,y S t a r t)点开始,向各个方向对所有包含由r g b C o l o r 参数设定的颜色的相邻区域进行填充。D r o w I c o n(h d c,x S t o r t,y S t a r t,h I c o n);本函数在指定设备上画一个图标。(x S t a r t,y S t a r t)为图标的左上角,h I c o n 标 识要画的图标,它与h B i t m a p 一样,可以由S D K P A I N T 画出,在 r c 文件中定义,用L o a d I c o n 获得。S c r o l l W i n d o w (h w n d,x S c r o l l,y S c r o l l,&r e c t S c r o l l,r e c t C l i p);本函数通过移动一个窗口用户区域的内容来滚动该窗口,沿X 轴移动x S c r o l l 个单位,沿Y 轴移动y S c r o l l 个单位,r e c t S c r o l l 表示用户区域要滚动的那一部分内容,r e c t C l i p 表示要滚动的裁剪矩形。S c r o l l D C(h d c,d x,d y,l p r c S c r o l l,l p r c C l i p,h r g n U p d a t e,l p r c U p d a t e);此函数水平地和垂直地滚动由位构成的矩形。l p r c S c r o l l 指向要滚动的矩形,d x 表示水平滚动单位,d y 表示垂直滚动单位,l p r c C l i p 指向裁剪矩形,h r g n U p d a t e 返回滚动过程没有覆盖的区域,l p r c U p d

    注意事项

    本文(C++编程中Windows图像编程概要.pdf)为本站会员(asd****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开