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

📄 bcb_g8.htm

📁 C++Builder教学大全
💻 HTM
字号:
 

<html>

<head>

<title>用C++Builder开发动画DLL</title>

<meta http-equiv="目录类型" content="文本/html; 字符集=gb2312">

</head>

<body bgcolor="#FFFFFF">

<table width="100%" border="0" height="285">

  <tr> 

    <td height="35"> 

      <div align="center" class="p14">

        <p align="center"><font color="#000000">用C++Builder开发动画DLL</font></div>

    </td>

  </tr>

  <tr valign="top"> 

    <td>

      <p><font color=#ffffff>---</font>我 们 在Windows98 环 境 下 执 行 拷 贝 文 件、 查 找 文    

        件 等 计 算 机 耗 时 较 长 的 操 作 时,Windows 会 显 示 一 个 小 小 的 动 画, 指 示 正 在 进 行 的 操    

        作, 与 死 板 的 静 止 图 像 相 比 增 色 不 少。 那 么 我 们 自 己 开 发 软 件 时, 能 否 也 显 示 一 个 这    

        样 的 动 画 提 示 呢 ? 笔 者 开 发 了 一 个 能 够 在PB 下 调 用 的 动 画DLL, 由 于 采 用 多 线 程 编    

        程,PB 调 用 的DLL 函 数 能 够 及 时 将 控 制 权 交 还 给PB, 不 影 响 应 用 系 统 的 运 转。 </p>   

      <h3>一、 代 码 与 编 译 选 项</h3>   

      <ol>   

        <li>在C + +Builder 中 创 建 一 个 空 白 的DLL 项 目。    

        <li>创 建 一 个 空 白 的Form, 修 改 它 的 属 性 为:    

          <pre>        BorderStyle=bsDialog

        BorderIcons 的 子 属 性 均 为False

        FormStyle=fsStayOnTop

        Position= poScreenCenter

        Name=StatusForm

</pre>   

        <li>在Form 上 添 加 一 个Win32 下 的Animate 控 件Animate1, 修 改 它 的 属 性 为    

          <pre>        Align=alTop

</pre>   

        <li>在Form 上 添 加 一 个Standard 下 的Button 控 件Button_Cancel, 再 添 加System 下    

          的Timer 控 件Timer1, 设 置 定 时Interval 时 间 位250, 较 快 响 应 用 户 的 取 消 请 求。 </li>   

      </ol>   

      <p><font color=#ffffff>----</font>因 为PB 应 用 系 统 与 动 画 窗 体 代 码 分 别 属 于 两    

        个 线 程, 不 能 采 用PB 线 程 直 接 关 闭 动 画 窗 体 线 程 的 窗 口, 否 则 会 引 起 系 统 运 行 不 正    

        常, 因 此 采 用PB 线 程 设 置 关 闭 标 志, 而 动 画 线 程 采 用Timer 控 件 定 时 检 查 标 志, 一 旦    

        检 测 到 关 闭 标 志, 就 关 闭 窗 口, 清 除 线 程 标 志, 结 束 动 画 线 程。 </p>   

      <p><font color=#ffffff>----</font>5. 下 面 给 出 编 码 及 编 码 原 理: </p>   

      <p><font color=#ffffff>----</font>(1)DLL 主 体 代 码: </p>   

      <pre> / *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&quot; __declspec(dllexport) int pascal Dll 

    

⌨️ 快捷键说明

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