文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发C++Builder利用C++ Builder开发动画DLL
精品推荐
特别推荐
·菜鸟入门 认识C#中的委托和事件
·WINDOWS下的动态鼠标光标控制
热点TOP10
·C++ Builder下数据库报表Master/Detail关系功能的实现
·用Builder C++设计串行口COM1或COM2的读写操作
·无废话C#设计模式之四:Factory Method
·菜鸟入门 认识C#中的委托和事件
·C#动态生成树型结构的Web程序设计
·QuickReport基本知识
·获得文件的版本信息
·C++Builder IDE使用技巧与快捷键
·C++Builder注册表编程实例详解
·在bcb里实现像Winamp那样具有吸附效果的磁性窗口

利用C++ Builder开发动画DLL

日期:2008年7月16日 作者: 查看:[大字体 中字体 小字体]


  我们在Windows98环境下执行拷贝文件、查找文件或计算机等耗时比较长的操作时,Windows会显示一个小小的动画,指示正在进行的操作,与死板的静止图像相比增色不少。

那么我们自己开发软件时,能否也显示一个这样的动画提示呢?我在开发一个外贸应用软件系统时,遇到的数据量很大,当通过复合条件查找时,因为不是数据库表的每个项目都有索引,所以很费时,系统也会表现出长时间停顿,用户感觉极为不爽。我经过一段时间的探索,开发了一个能够在采用的开发环境PowerBuilder下调用的动画DLL,由于采用多线程编程,PB调用的DLL函数能够及时将控制权交还为PB,不影响应用系统的运转。用户能够看到一个东西在动,也就不会想到系统是不是停止响应了,感觉时间也似乎没那么久了。

代码与编译选项

  (1).在C++Builder的File菜单下选择New,在New Item对话框的New属性中选择DLL,C++Builder就会创建一个空白的DLL项目。

  (2).在File菜单下选择New Form,C++Builder创建一个空白的Form,修改它的属性为

BorderStyle=bsDialog
BorderIcons的子属性均为False
FormStyle=fsStayOnTop
Position= poScreenCenter
Name=StatusForm


  (3).在Form上添加一个Win32下的Animate控件Animate1,修改它的属性为Align=alTop


  (4).在Form上添加一个Standard下的Button控件Button_Cancel,再添加System下的Timer控件Timer1,设置定时Interval时间位250,以较快的响应用户的取消请求。

  因为PB应用系统与动画窗体代码分别属于两个线程,不能采用PB线程直接关闭动画窗体线程的窗口,否则会引起系统运行不正常,因此采用PB线程设置关闭标志,而动画线程采用Timer控件定时检查标志,一旦检测到关闭标志,就关闭窗口,清除线程标志,结束动画线程。

  下面给出编码及编码原理:

1.DLL DLL主体代码:

/**********************************
* DLL主体代码
* 定义DLL公用变量
* g_CommonAVI
对Animate控件动画类型索引
* gi_Canceled
Button_Cancel按钮是否被选择过
* gi_AVIType
要显示的动画类型,由DLL输出函数做为参数输入
* gi_RequestClose
求动画线程关闭标志
* gi_WindowActive
动画窗口所处的状态
* lpsWinTitle
动画窗体的标题,由DLL输出函数做为参数输入

*/

TCommonAVI g_CommonAVI[]={
aviNone, aviFindFolder,
aviFindFile, aviFindComputer,
aviCopyFiles, aviCopyFile,
aviRecycleFile, aviEmptyRecycle,
aviDeleteFile
};
int gi_Canceled=0,gi_AVIType=0;
int gi_RequestClose=0,gi_WindowActive=0;
char lpsWinTitle[256];
HWND hWndParent=NULL;

/* 定义DLL 输出函数 */
extern "C" __declspec(dllexport)
int pascal DllEntryPoint(HINSTANCE hinst,
unsigned long reason, void*);
extern "C" __declspec(dllexport) int
pascal ShowStatusWindow(int AVIType,
LPSTR WinTitle,long hWnd);
extern "C" __declspec(dllexport) int
pascal GetStatus(int ai_CloseWin);
extern "C" __declspec(dllexport) int
pascal CloseStatusWindow();

/*定义线程TformThread:*/
class TFormThread : public TThread{
public:// User declarations
__fastcall TFormThread(bool CreateSuspended);
void __fastcall Execute(void);
};
__fastcall TFormThread::

[1] [2] [3] 下一页 




上一篇:用C++Builder编写Tray程序

下一篇:C++BUILDER非可视组件的消息处理技巧

相关文章:
·只需十三招 轻松学会利用博客赚钱
·日本动画制作幕后完全流程揭秘
·免费攻略:利用QQ网吧免费开蓝钻
·3DMAX制作片头动画(适合初学片头动画)
·Flash制作烟花效果动画
·利用word将PDF转换DOC文件的方法
·[最新QQ空间代码]QQ空间花,漂浮物、开场动画代码
·快速利用135端口入侵个人电脑
·利用Delphi 5.0开发OLE自动化控制器操纵Excel
·利用腾讯漏洞取回QQ密码
相关软件:
·中国少年儿童智力开发百科全书(上中下)高清PDF全彩图书
·powerbuilder10.0中文版
·孙鑫VC++从入门到精通开发详解视频教程FLASH版
·Flash MX 动画制作实例教程
·3Dmax 动画教程
·3D 动画与建模:人体的综合与分析技术
·《最终幻想12》超清晰CG动画
·Windows 程式开发设计指南 中文版
·软景HTML制造机(Softscape HTML Builder)V2.0
·霓虹灯动画软件 V4.0

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot