- 1
- 0
- 约8.96千字
- 约 9页
- 2023-04-18 发布于上海
- 举报
以前,程序员在 DOS 平台下开发应用软件时,都会利用 DOS 的开放性特点,通过中断编写出一些特殊的显示效果,以此来给自己的程序增加一些有趣的特色。然而,随着面向 Windows 的编程和可视化的第四代开发工具的逐步使用,人们越来越被 Windows 的统一的编程风格所束缚,同时由于 Windows 直接管理中断,想用原来的方法来实现一些特殊的显示效果变得越来越困难了。
那么,在 Windows 时代程序员如何来实现窗口的特殊效果呢?实际上,由于整个 Windows 是图形显示系统,因此对系统而言,用户程序的每一个界面、窗口都是系统的一个画布。程序员可以利用这一特点来实现窗口的特殊效果。
最近笔者利用 C++ Builder 5.0 Enterprise 成功的实现了该项功能,现介绍如下:
1、在 BCB 中建立一个工程文件 project1.dpr,在 Form1 中添加如下控件:
控件名称
属性
值
Tform
Color
clBtnText
TMainMenu
Name
MainMneu1
Timage
Name
Image1
Align
alClient
AutoSize
True
同时在 MainMenu1 控件中增加一个菜单项,其属性为:
Name Caption
Items1 图像从中间往左右分出
Items2 图像从左右往中间合进
Items3 图像从中间往上下分出
Items4 图像从上下往中间合进
Items5 图像从左移入
Items6 图像从右移入
Items7 图像从上移入
Items8 图像从下移入
Items9 图像从左刷屏显示
Items10 图像从右刷屏显示
Items11 图像从上刷屏显示
Items12 图像从下刷屏显示
Items13 图像从上往下流水
Items14 图像从下往上流水
Items15 图像圆形展出
Items16 图像左右错移
Items17 图像上下错移
同时在 Unit.cpp 中的 private 中添加如下变量:
private:
BITMAP bm;
Graphics::Tbitmap *Bitmap1; int I,j;
int WideHalf;
Trect Dest1,Source1,Dest2,Source2; int HeightHalf;
HRGN MyRgn;
2、在 Form1 的 OnCreate 事件中添加如下代码:
void fastcall TForm1::FormCreate(Tobject *Sender)//进行图像特效显示的初始化操作//
{
Graphics::Tbitmap *Bitmap1 = new Graphics::Tbitmap();//定义一个图象句柄//
Bitmap1-LoadFromFile(C:\factory.bmp);//设定所要特效显示的图象为 factory.bmp//
if(GetDeviceCaps(Form1-Canvas-Handle,BITSPIXEL)==8)//取得显示窗口的颜色属性//
{
GetObject(Bitmap1-Handle,sizeof(BITMAP),(LPSTR)bm);
if (bm.bmBitsPixel==8)//如果特效显示的图象颜色属性为 256 色//
{
SelectPalette(Form1-Canvas-Handle,Bitmap1-Palette,FALSE)
;//从特效显示的颜色画板中提取配色方案//
RealizePalette(Form1-Canvas-Handle); //在显示窗口中设置配
色方案//
}
Bitmap-HandleType=bmDDB;
}
}
3、在 Items1 的 OnClieck 事件中添加如下代码:
void fastcall TForm1::Item1Click(Tobject *Sender)
{ //图象从中间往左右分出// Form1-Refresh( );
WideHalf=Bitmap1-Width/2+Bitmap1-Width%2; for(i=0;i=WideHalf; i++)
{
Dest1=Rect(WideHalf-I,0,WideHalf+I,Bitmap1-Height); Source1=Rect(WideHalf-I,0,WideHalf+I,Bitmap1-Height); Form1-Canvas-CopyRect(Dest1,Bitmap1-Canvas,Source1); for(j=0;j10000;j++);//图像的延迟显示//
}
}
4、在 Items2 的 OnClieck 事件中添加如下代码:
void fastcall TForm1::
您可能关注的文档
最近下载
- 新人教版小学六年级数学上册教学课件(全册).pptx VIP
- 高中语文高三作文论证严谨性复习知识清单.docx VIP
- 山东省2025年艺术类专科批美术与设计类第1次志愿投档情况表.xls VIP
- 2025年广东省珠海市中考数学试题及解析.docx VIP
- 最新中石化英语职称考试历年真题.pdf VIP
- 深川CHINSC S200系列通用矢量变频器说明书.pdf VIP
- 中考语文阅读理解《镜面农夫》含答案.docx
- 广东省深圳市八年级(上)期末英语试题.pdf VIP
- 最新版-幼儿园教师考编背诵知识点整理-必备手册(含记忆口诀).docx VIP
- 2026河北新高考语文一模仿真模拟试卷(附答案解析).docx VIP
原创力文档

文档评论(0)