作者:周学泳
----去年以来笔者参与完成了国内几个商品软件的开发工作,感觉到底这种实战和平时自己练习编程不同,短时间内编程水平得到极大的提高。有些项目是用VB做的,接这些项目之前本人还根本没有用过VB,虽然VB较之VC++为简单,容易入门,但是要弄得清楚彻底也不是易事,在开发中,本人积累了一些经验,在此写出来与大家共享,有偏颇之处请指正。下面将针对开发中具体的
问题逐一展开叙述:
一、 界 面 设 计
---- 1、 一 般 性 原 则
---- 界 面 设 计 的 一 般 性 原 则, 对C++ 的 程 序 员 也 适 用。
界面的整体性。 整 体 性 在 界 面 设 计 中 最 容 易 违 反, 同 时 也 最 容 易 修 改 和 避 免。 例 如, 在 菜 单 和 联 机 帮 助 中 必 须 使 用 相 同 的 术 语; 对 话 框 必 须 具 有 相 同 的 风 格; 美 工 在 对 图 案、 图 标 等 设 计 时 必 须 考 虑 到 统 一、 协 调 和 美 观 等 等。
良好的交互性。 对 于 某 些 软 件 来 说, 其 使 用 者 往 往 不 是 计 算 机 的 专 业 人 员, 因 此 需 要 具 有 友 好 交 互 的 界 面, 对 操 作 人 员 的 重 要 操 作 要 提 供 信 息 反 馈。 设 计 良 好 的 联 机 帮 助。 虽 然 对 于 熟 练 用 户 来 说, 联 机 帮 助 并 非 必 不 可 少, 但 是 对 于 大 多 数 不 熟 练 的 新 用 户 来 说, 联 机 帮 助 具 有 非 常 重 要 的 作 用。
操作的便捷性。 常 用 操 作 的 使 用 频 度 大, 应 该 减 少 操 作 序 列 的 长 度。 例 如, 为 文 件 的 常 用 操 作 如 打 开、 存 盘、 另 存 等 设 置 快 捷 键。 使 常 用 操 作 具 有 捷 径, 不 仅 会 提 高 用 户 的 工 作 效 率, 还 使 得 界 面 在 功 能 实 现 上 简 洁 和 高 效。
设置错误处理。 使 用 者 操 作 中 可 能 出 现 许 多 在 程 序 设 计 没 注 意 的 问 题, 在 测 试 时 也 没 有 发 现, 所 以 必 须 提 供 简 单 和 容 易 理 解 的 错 误 处 理 功 能, 在 出 现 错 误 时, 系 统 应 该 能 检 测 出 错 误, 错 误 出 现 后 系 统 的 状 态 不 发 生 变 化, 或 者 系 统 要 提 供 错 误 恢 复 的 指 导。
----2、软件封面技术
---- 封 面 技 术 在 软 件 开 发 中 越 来 越 成 为 一 种 标 准, 一 个 漂 亮 而 醒 目 的 封 面 会 使 软 件 更 加 充 满 魅 力, 拿 微 软 的VB5.0、VC++5.0 来 说, 其 简 洁 美 观、 具 有 真 实 三 维 效 果 的 封 面 给 所 有 使 用 者 留 下 了 深 刻 的 印 象。
---- 要 制 作 一 个 专 业 的 软 件 封 面, 首 先 制 作 一 个 用 于 封 面 的 窗 体, 命 名 为FrmCover。
将 该 窗 体 属 性 中 的BorderStyle 设 置 为0-None, 并 将Appearence 属 性 设 为1-3D, 在FrmCover 窗 体 中 可 加 入PictureBox 或Image 设 置 封 面 图 案, 加 入TextBox 或Label 显 示 文 字 信 息。
加 入 一 个Timer, 计 时 到 指 定 时 间 关 闭FrmCover。
在 主 程 序 启 动 时, 先Show FrmCover, 并 按 下 面 的 代 码 设 置 封 面 总 保 持 在 最 前 面。
---- 声 明 部 分:
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const TOPMOST_FLAGS =
SWP_NOMOVE Or SWP_NOSIZE
Public Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
注释:hWnd为作为封面窗体的句柄
注释:hWndInsertAfter指示为封面窗体前载入的窗体
注释:X为封面窗体左上