📄 20000727009.htm
字号:
<HTML>
<HEAD>
<TITLE>用C++Builder开发动画DLL</TITLE>
<META content="Microsoft FrontPage 4.0" name=GENERATOR>
</HEAD>
<BODY aLink=#FF0000 bgColor=#ffffff leftMargin=0 link=#187800 topMargin=0
vLink=#990099>
<div align="center">
<table width="744" border="0" cellspacing="0" cellpadding="0" height="76">
<tr>
<td>
<p align="center"><font size="3"><b><br>
用C++Builder开发动画DLL </b></font></p>
<font color="#ffffff">-</font>我们在Windows98环境下执行拷贝文件、查找文件等计算机耗时较长的操作时,Windows会显示一个小小的动画,指示正在进行的操作,与死板的静止图像相比增色不少。那么我们自己开发软件时,能否也显示一个这样的动画提示呢?笔者开发了一个能够在PB下调用的动画DLL,由于采用多线程编程,PB调用<br>
的DLL函数能够及时将控制权交还给PB,不影响应用系统的运转。一、代码与编译选项
<div align="left">
<ol>
<li>在C++Builder中创建一个空白的DLL项目。
<li>创建一个空白的Form,修改它的属性为:BorderStyle=bsDialog<br>
BorderIcons的子属性均为False<br>
FormStyle=fsStayOnTop<br>
Position=poScreenCenter<br>
Name=StatusForm<br>
<li>在Form上添加一个Win32下的Animate控件Animate1,修改它的属性为Align=alTop<br>
</ol>
</div>
<div align="left">在Form上添加一个Standard下的Button控件Button_Cancel,再添加System下的Timer控件Timer1,设置定时Interval时间位<br>
250,较快响应用户的取消请求。 </div>
<font color="#ffffff">----</font>因为PB应用系统与动画窗体代码分别属于两个线程,不能采用PB线程直接关闭动画窗体线程的窗口,<br>
否则会引起系统运行不正常,因此采用PB线程设置关闭标志,而动画线程采用Timer控件定时检查标志, <br>
一旦检测到关闭标志,就关闭窗口,清除线程标志,结束动画线程。<font color="#ffffff">----</font>5.下面给出编码及编码原理:<font color="#ffffff">----</font>(1)DLL主体代码:
<div align="left"> /*DLL主体代码<br>
*定义DLL公用变量<br>
*g_CommonAVI对Animate控件<br>
动画类型索引<br>
*gi_CanceledButton_Cancel <br>
按钮是否被选择过<br>
*gi_AVIType要显示的动画类型,<br>
由DLL输出函数做为参数输入<br>
*gi_RequestClose请求动画线程关闭标志<br>
*gi_WindowActive动画窗口所处的状态<br>
*lpsWinTitle动画窗体的标题,<br>
由DLL输出函数做为参数输入<br>
*/<br>
<br>
TCommonAVI g_CommonAVI[]={<br>
aviNone, aviFindFolder,<br>
aviFindFile, aviFindComputer,<br>
aviCopyFiles, aviCopyFile,<br>
aviRecycleFile, aviEmptyRecycle,<br>
aviDeleteFile<br>
};<br>
int gi_Canceled=0,gi_AVIType=0;<br>
int gi_RequestClose=0,gi_WindowActive=0;<br>
char lpsWinTitle[256];<br>
HWND hWndParent=NULL;<br>
<br>
/ * 定 义DLL 输 出 函 数 */<br>
extern “C" __declspec(dllexport) int pascal Dll<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -