C++中不规则窗体的快速显示

C++中不规则窗体的快速显示,第1张

C++中不规则窗体的快速显示,第2张

传统的WINDOWS应用软件界面给人的感觉总是千篇一律的方形。看久了难免厌烦,总希望能看到一些不一样的通用软件界面。如今,相当多的商业软件在提供优秀而强大的功能的同时,软件的界面也越来越漂亮。比如超级解霸2000中的界面插件,用过的人一定对它华丽的外观充满好感。作为一个编程爱好者,如果你自己的软件也有类似的界面,可能会吸引更多的关注。所以,让我们现在就开始制作自己漂亮的界面吧。

技术内幕

要在自己的程序中添加不规则窗体的应用,首先要熟悉几个WINDOWS API函数的使用,它们是:椭圆(或圆形)区域创建函数CreateEllipticRgn、多边形区域创建函数CreatePolygonRgn、矩形区域创建函数CreateRectRgn、圆角矩形区域创建函数CreateRoundRectRgn。您可以使用这些函数创建不同类型的窗体区域,或者使用WINDOWS API函数CombineRgn将几个简单区域组合成一个复杂区域。

下一步是在屏幕上显示创建的区域,这也是使用WINDOWS API函数实现的。这一次,使用SetWindowRgn函数。

在Borland C++ Builder头文件中已经定义了WINDOWS API函数,在应用程序中使用这些API函数就像在C++中使用常见的库函数一样。

准备:为你的节目准备一张背景图片。推荐的方法是:在PhotoShop中打开图片后,使用磁性套索工具选择需要的图像轮廓——复制——新建文件(背景为白色)——粘贴——将文件另存为PSD文件——使用ACDSee等图像查看软件将保存的PSD文件转换为BMP文件face.bmp,以备后用。

程序中的参考图片

打开Borland C++ Builder,在窗体上放置一个图像控件Image1,其图片临时为空;在表单上放置一个弹出菜单,编辑菜单项并添加一个“关闭”项(添加程序代码以便在弹出菜单被激活时关闭应用程序)。在程序中执行以下处理:

void _ _ fast call t form 1::form create(to object * Sender)

{

Image1->图片->LoadFromFile("。\ \ face . BMP ");

Width = Image1-> Width;

Height = Image1-> Height;

repaint();

}

此时,窗口的大小可以随着所用图片的大小而变化,但仍然是传统的WINDOWS界面。如果想把它显示成一个带有图片轮廓的窗口,就需要使用前面介绍的WINDOWS API函数,把不需要显示的部分裁剪掉。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++中不规则窗体的快速显示

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情