用VC5 制作应用程序启动封面.docx_第1页
用VC5 制作应用程序启动封面.docx_第2页
用VC5 制作应用程序启动封面.docx_第3页
用VC5 制作应用程序启动封面.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用VC5 制 作 应 用 程 序 启 动 封 面 很 多 大 型 应 用 程 序 都 有 启 动 封 面, 如Word 等 办 公 系 列 软 件 和VC 等编 程 软 件。 通 过 启 动 封 面, 除 了 显 示 应 用 程 序 名 称 和 版 权 等 提 示 画 面,还 可 避 免 由 于 应 用 程 序 启 动 前 进 行 大 量 数 据 初 始 化 时, 用 户 较 长 时 间 的等 待, 给 应 用 程 序 增 添 了 许 多 动 态 特 性 和 专 业 规 范。 鉴 于VC 开 发 工 具 应 用 较 广, 这 里 以VC5 为 例 阐 述 启 动 封 面 的 一 般 实 现 步 骤。 - 1. 制 作 封 面 位 图 - 制 作 应 用 程 序 启 动 封 面 真 彩 位 图, 记 录 位 图 的 高 度 和 宽 度, 建 立 所 需要 的 其 他 声 音 等 文 件。 - 2. 建 立 应 用 程 序 - 利 用FILE NEW 菜 单 建 立 名 为START 的 多 文 档 应 用 程 序 框 架, 并 利 用 类 向导AppWizard 增 加 基 类 为generic CWnd 的 新 类CSplashWnd, 将 新 类 的 文 件 改 名 为splash.h 和splash.cpp, 并 增 加WM CREATB 和WM PAINT 的 消 息 映 射 函 数。 - 3. 定 义 变 量 和 函 数 - 在splash.h 中 定 义 如 下 成 员 变 量 和 函 数: public:BOOL Create(CWnd pParentWnd=NULL);HANDLE hBitsSrc;LPSTR pBitsSrc;UINT iW,iH;- 4. 建 立 启 动 封 面 窗 口 - 在splash.cpp 中 增 加Create 函 数, 建 立 显 示 位 图 的 弹 出 窗 口: include “windowsx.h” 增 加 扩 展 窗 口 建 立 struct 位 图 文 件 头 结 构BITMAPINFOHEADER Header;Info;BOOL CSplashWnd:Create(CWnd pParentWnd) 建 立 显 示 位 图 的 弹 出 窗 口return CreateEx(0,AfxRegisterWndClass(0,AfxGetApp() LoadStandardCursor (IDC_ARROW),NULL,WS_POPUP|WS_VISIBLE,0,0,672,480,pParentWnd GetSafeHwnd(),NULL);int CsplashWnd:OnCreate(LPCREATESTRUCT lpCreateStruct) TODO:Add your specialized creation code hereCenterWindow(); 使 弹 出 窗 口 居 中return 0;- 5. 完 善 析 构 函 数 - 在splash.cpp 中 完 善 析 构 函 数, 为 显 示 位 图 作 准 备: CSplashWnd:CSplashWnd() 完 善 析 构 函 数iW=672;iH=480; 位 图 的 宽 度 和 高 度Info.Header.biSize=sizeof(BITMAPINFOHEADER);Info.header.biWidth=iW;Info.Header.biHeight=iH;Info.Header.biPlanes=1L;Info.Header.biBitCount=24L;hBitsSrc=:GlobalAlloc(GHND,(long)(iW iH 3); 分 配 内 存pBitsSrc=(LPSTR):GlobalLock(hBitsSrc); 加 锁 内 存CSplashWnd:CSplashWnd():GlobalUnlock(hBitsSrc); 解 锁 内 存:GlobalFree(hBitsSrc); 释 放 内 存- 6. 显 示 真 彩 位 图 - 在splash.cpp 中 完 善Onpaint 函 数, 实 现 真 彩 位 图 的 显 示: void CSplashWnd:OnPaint() TODO:Add your message handler code here CFile fbmp;fbmp.Open(“c:windowsEMC1.BMP”,CFile:modeRead|CFile:typeBinary|CFile:shareExclusive); 打 开 文 件fbmp.Seek(54,CFile:begin); 位 图 文 件 头 为54 字 节fbmp.ReadHuge(pBitsSrc,(long)(iW iH 3): 读 文 件fbmp.Close(); 关 闭 文 件HBITMAP hBitmap=:CreateDIBitmap(dc.m_hDC,(BITMAPINFOHEADER FAR ) (Info.Header),CBM_INIT,pBitsSrc,(LPBITMAPINFO) Info,DIB_RGB_COLORS); 建 立 位 图HDC hMemDC=:CreateCompatibleDC(dc.m_hDC); 建 立 内 存HBITMAP hBitmapOld=SelectBitmap(hMemDC,hBitmap); 选 择 对 象:StretchBlt(dc.m_hDC,0,0,iW,iH,hMemDC,0,0,iW,iH,SRCCOPY); 显 示 真 彩 位 图:DeleteObject(SelectObject(hMemDC,hBitmapOld); 删 除 位 图- 7. 弹 出 窗 口 类 声 明 - 在Mainfrm.h 中 增 加 代 码, 为 显 示 和 撤 销 弹 出 窗 口 作 准 备: class CsplashWnd: 闪 烁 窗 口 类 class CMainFrame: public CMDIFrameWnd pubIic:CSplashWnd SplashWnd; 声 明 类- 8. 真 彩 封 面 的 实 现 - 在Mainfrm.cpp 中 增 加 显 示 弹 出 窗 口、 播 放 音 乐、 延 时 功 能 和 撤 销 弹 出 窗 口 的 代 码, 以 实 现 真 彩 封 面 的 整 个 处 理 过 程: include “splash.h” 新 类 支 持include “mmsystem.h” 多 媒 体 支 持pragma comment(lib,“WINMM.LIB”) 多 媒 体 支 持 int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)SplashWnd.Create(this); 创 建 弹 出 窗 口SplashWnd.ShowWindow(SW_SHOW); 显 示 弹 出 窗 口SplashWnd.UpdateWindow(); 更 新 弹 出 窗 口int dd=sndPlaySound(“c:windowsreminder.wav”,SND_ASYNC|SND_LOOP); 异 步 播 放WAV 文 件if (dd=FALSE) 参 数SND_ASYNC|SND_LOOP 可 循 环 播 放AfxMessageBox(“ 播 放WAV 文 件 错 误”);:Sleep(2000); 进 程 休 眠2 秒 应 用 程 序 初 始 化 工 作dd=sn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论