设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3225|回复: 3
打印 上一主题 下一主题

Windows提供的只是标准的矩形窗口,要想建立一个不规则的窗口就需要调用API函数来实

[复制链接]
跳转到指定楼层
1#
发表于 2002-9-26 17:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问!如何用API函数实现这个问题??
建立一个不规则的窗口,一般是先用创建区域的API函数建立一个不规则的区域,再用API函数SetWindowRgn改变窗口的区域。这些API函数在C++ Builder中包含在头文件wingdi.h和winuser.h里面,因此,要使用这些API函数就要先在程序头部加上包含头文件的语句:

include <wingdi.h>

include <winuser.h>

  SetWindowRgn函数能改变一个窗口的区域,该函数有三个参数,第一个参数hWnd是欲设置区域的窗口句柄,第二个参数hRgn是欲设置的区域,第三个参数bRedraw一般设为true,即立即重画窗口。

  用来创建区域的API函数有多个,最常用的有三个:

  1、CreateRectRgn函数,用来创建一个由X1、Y1和X2、Y2坐标点确定的矩形区域。当坐标点X1和Y1相等、X2和Y2也相等的时候,创建的是一个正方形。

  例子:

//创建长方形

HRGN hRect=CreateRectRgn(0,0,400,200);

SetWindowRgn(Handle,hRect,true);

//创建正方形

HRGN hRect=CreateRectRgn(0,0,300,300);

SetWindowRgn(Handle,hRect,true);

  2、CreateEllipticRgn函数,用来创建一个由X1、Y1和X2、Y2坐标点确定的矩形所内切的椭圆。同样,X1、Y1和X2、Y2坐标点所确定的矩形为正方形时,创建的就是一个圆形。

  例子:

//创建椭圆

HRGN hElliptic=CreateEllipticRgn(0,0,400,250);

SetWindowRgn(Handle,hElliptic,true);

//创建圆形

HRGN hElliptic=CreateEllipticRgn(0,0,400,400);

SetWindowRgn(Handle,hElliptic,true);
这样的例子我明白!
但能将两个区域组合为一个新区域,它有四个参数,第一个参数hrgnDest保存合并后的新区域,第二个参数hrgnSrc1、三个参数hrgnSrc2为欲合并的两个区域,第四个参数fnCombineMode是区域组合的方式,它的值是为下面组合方式之一:

  组合方式 说明

RGN_AND 建立两个区域的交集

RGN_COPY 建立hrgnSrc1的拷贝

RGN_DIFF 建立两个区域不相交的部分

RGN_OR 建立两个区域的并集

RGN_XOR 建立除两个区域并集之外的部分


如上函数的代码例子
kdwin\WTM1
你们谁会!!???


[em09]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2002-9-26 17:29:00 | 只看该作者
为博红颜一笑!!你成天调用API干什么〉?〉?
你的软件不会全用API完工吧?

//创建一个圆形和长方形交集的组合形状

HRGN hRect=CreateRectRgn(0,0,300,300);

HRGN hElliptic=CreateEllipticRgn(0,0,400,250);

CombineRgn(hRect,hRect,hElliptic,RGN_OR);

SetWindowRgn(Handle,hRect,true);

  当需要将窗口还原为标准Windows矩形窗口时,只要将SetWindowRgn函数的hRgn参数设为0就行了,如:

SetWindowRgn(Handle,0,true);







3#
 楼主| 发表于 2002-9-26 17:34:00 | 只看该作者
哈哈!!~!
我问你,你就答!!
谁叫你是版主,你的职责所在!!……
不过!谢谢你!!
看邮箱!!有我给你冬冬!
成天软件改造开发系统密匙!
哭吧!你天天不都挂几着!
咳!看你帮我这么多次的份告诉你!
还有不要在远程登陆我的机器了!!
人家女孩子有自己的秘密,……你怎么可以进来!!?

4#
发表于 2002-9-26 19:03:00 | 只看该作者

可笑!!

1、版主是帮助你的不是免费的劳动力!!
2、而成天软件改造开发系统密匙我7月份已经知道了!!!
3、小声问你一句!:“明天你月信!!ok ??”

[em27]


[此贴子已经被WTM1于2002-9-26 11:02:58编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-6 06:47 , Processed in 0.085128 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表