⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 20000727009.htm

📁 C++Builder教学大全
💻 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&quot; __declspec(dllexport) int pascal Dll<br>

          

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -