如 何 用Visual C++ 5.0 在 菜 单 中 增 加 位 图 或 图 标 ?---- 我 们 在 使 用Windows 95 时, 可 以 注 意 到 在“ 开 始” 组 中 的 菜 单 项 前 都 有 一 个 图 标, 而 且 在Word 97 中 的 菜 单 项 前 也 有 一 个 图 标。 这 些 图 标 不 但 让 我 们 清 楚 地 了 解 到 屏 幕 上 的 各 种 工 具 按 钮 与 各 个 菜 单 项 之 间 的 联 系, 而 且 还 增 加 了 应 用 程 序 界 面 的 美 观。 那 么, 请 问 如 何 用Visual C++ 5.0 在 应 用 程 序 菜 单 中 增 加 图 标 ? ---- MFC 的CMenu 类 有 一 个 成 员 函 数SetMenuItemBitmaps, 可 以 用 于 往 菜 单 中 增 加 图 标。 具 体 方 法 如 下: ---- 在 应 用 程 序 的 资 源 文 件 中 添 加 想 要 增 加 的 位 图, 并 将 其ID 命 名 为IDB_OPEN1 和IDB_OPEN2; ---- 在 应 用 程 序 的 视 图 类 中 添 加CBitmap 类 的 对 象, 不 妨 取 名 为bm_open1 和bm_open2。 在 视 图 类 的 构 造 函 数 中 添 加 以 下 代 码: bm_open1.LoadBitmap(IDB_OPEN1); bm_open2.LoadBitmap(IDB_OPEN2); ( 函 数LoadBitmap 用 于 加 载 位 图 到CBitmap 类 的 对 象) 在 视 图 类 的 成 员 函 数OnDraw() 中 添 加 以 下 代 码: CWnd*parent=GetParent(); CMenu*pmenubar=parent-> GetMenu(); CMenu*pmenu=pmenubar-> GetSubMenu(2);---- pmenu->SetMenuItemBitmaps(1,MF_BYPOSITION,&bm_open1,&bm_open2); ---- 前 三 行 得 到 指 向 菜 单 的 指 针, 第 四 行 调 用 函 数SetMenuItemBitmaps 往 菜 单 中 增 加 图 标, 具 体 参 数 的 含 义 可 参 见 有 关 介 绍MFC 及 其 成 员 函 数 的 书 即 可。( 孙 燕 征) 中国计算机世界出版服务公司版权所有 |