C++中不规则窗体的快速显示
传统的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函数,把不需要显示的部分裁剪掉。
位律师回复
0条评论