用C++Builder开发动画DLL
Posted on 八月 16rd, 2007 由 admin
热门问答:
推荐阅读
| · 从619的“热”度开始…… |
| 摘要:x619入手25天了。总觉得想写点什么东西告诉大家我对这个机器的看法,却找不到一个很好的切入点。今天我找到了,那就是发热。机器卖的好,热,机器工作时间长热! 发热:这个机器的发热量高的惊人,用过的人都会明白,这个热量由多夸张,会烫手的。起初以为是个别,后来听说是普遍问题,那肯定是设计缺陷了,不知道e250...... |
| · 交叉火力有intel版!rd400北桥初曝光新闻新品 |
| 摘要: atiraedonxpress200crossfireinteledition的北桥芯片rd400真身,芯片的大小要比rd480更大一些,这主要是因为芯片集成了了内存控制器,支持最高ddr2800主板内存,拥有pci-expressx8+x8的绘图接……·美丽接触海畅span芯r280靓图欣赏·入门用户必看!酷睿双核配置推荐·最低79911款x1650xt全面阻击76gt·难得一见 精英高端板ka3现身市场·“日光魔盒”...... |
正文
我们在windows98环境下执行拷贝文件、查找文件等计算机耗时较长的操作时,windows会显示一个小小的动画,指示正在进行的操作,与死板的静止图像相比增色不少。那么我们自己开发软件时,能否也显示一个这样的动画提示呢?笔者开发了一个能够在pb下调用的动画dll,由于采用多线程编程,pb调用的dll函数能够及时将控制权交还给pb,不影响应用系统的运转。
一、代码与编译选项
在c++builder中创建一个空白的dll项目。
创建一个空白的form,修改它的属性为: borderstyle=bsdialog
在form上添加一个win32下的animate控件animate1,修改它的属性为 align=altop 在form上添加一个standard下的button控件button_cancel,再添加system下的timer控件timer1,设置定时interval时间位250,较快响应用户的取消请求。
----因为pb应用系统与动画窗体代码分别属于两个线程,不能采用pb线程直接关闭动画窗体线程的窗口,否则会引起系统运行不正常,因此采用pb线程设置关闭标志,而动画线程采用timer控件定时检查标志,一旦检测到关闭标志,就关闭窗口,清除线程标志,结束动画线程。
5.下面给出编码及编码原理:
----(1)dll主体代码: /*dll主体代码
*定义dll公用变量
*g_commonavi 对animate控件
动画类型索引
*gi_canceled button_cancel
按钮是否被选择过
*gi_avitype 要显示的动画类型,
由dll输出函数做为参数输入
*gi_requestclose 请求动画线程关闭标志
*gi_windowactive 动画窗口所处的状态
*lpswintitle 动画窗体的标题,
由dll输出函数做为参数输入
/*动画线程执行代码, 动画窗体的定时器控件会关闭它,
清除窗体存在标志后结束线程的运行
6.设置编译选项:打开project options对话框,清除linker属性页中的use dynamic rtl标志,清除packages属性页中的build with runtime packages。这样只要单个dll就可以运行了,而不必安装一些动态连接运行时间库。
二、使用动画dll
1.定义:


讨论区