VC工程中加入SplashScreen原理释解.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC++工程中加入SplashScreen原理释解 Abbey 摘 要:本文旨在剖析VC++工程屮加入SplashScreen的原理,并给出在VC++ MFC (cxc)工程屮加入SplashScreen的步骤。 关键字:SplashScreen,原理 环 境:Windows 98SE/2000, VC++ 6.0 SplashScreen-我们使用Word之类的软件在启动的短暂吋间里就会看到它的身 影。它通常用以在程序启动时显示程序及用户名称,版权信息等。我也不知道它 准确的名称是什么(是闪屏吗?),就这样称呼吧。也许你也想在自己的工程里 加入这样的特性,木文将以创建实际工程的方式逐步剖析其实现原理。 注意:为避免实际所使用工程名给类或对象名带来的干扰,除非特别说明,在木 文中将使用基类名如CWinApp. CMainFrame CDialog来代替实际工程中的相应 派生类名进行描述。 Visual C++是一个相当强大的C++开发工具,它内嵌了对SplashScreen的支持。 但是在MFC EXE类型工程中只是对带有主框架类的SDI或MDI工程提供了这一支 持,基于对话框类的工程则被排除在外。现在让我们开始吧。第一步是在SDI 工程屮加入SplashScreerio 首先利用AppWizard生成一个SDI工程,除了其中Docking ToolBar必须选择外 (我认为这是MFC的一个Bug,当然这与本文讨论的SplashScreen没有关系), 其他的文档一视图支持、状态条之类的都可以不要,这样可以尽量减少无用的代 码。 通过 IDE 中的菜单 Project-Add to Project-Components and Controls,我 们就可以从Visual C++ Components中选择Splash Screen这个组件插入工程。 ponents and Controls Gallery Choose a component to insert into your project: 查找范围 Q): | _Vi xu^l C++ Components 二]0也占囲▼ (^Progress Dialog §)Tip of the day I^Property Sheet ^ToolTip Support Windows Multimedi a libr 敬Splitter Bar ^JStatus bar System Info for About Dl sockets ■ 文件名 : |Splsh screen Insert CloseThis component adds a start-up bitmap (splash screen] to your MFC application. Close More Info More Info Path to control: 在点击了〃 Insert后会弹出一个如下图所示的对话框,这是设置插入该工程中的 SplashScreen的类名、显示用位图的ID及文件名,采用缺省值即可。 通过以上几步的操作,就会在工程目录下生成Splash. CPP和Splash. H文件,这 便是CSplashWnd类的实现文件与头文件。同时工程中CWinApp与CMainFramc 类中的部分代码也会被修改,以实现CSplashWnd窗口的消息处理。 接着我们来看看CSplashWnd类的声明与主要的代码(己经过删减): 〃类的声明 class CSplashWnd : public CWnd CSplashWnd (); ^CSplashWnd (); virtual void PostNcDestroy(); static void EnableSplashScreen(BOOL bEnablc = TRUE); static void ShowSplashScreen(CWnd* pParentWnd = NULL); static BOOL PreTranslateAppMessage(MSG* pMsg); BOOL Create (CWnd* pParentWnd 二 NULL); void HideSplashScreen(); afx_msg int OnCreate(LPCREATESTRUCT IpCreateStruct); afx msg void OnPaint (); afx msg void OnTimer(UINT nlDEvent); CBitmap m_bitmap; //SplashScrecn 窗口显示用的位图对彖 static BOOL c_bShowSplashWncl; //是否耍显示 SplashScreen 的标志 里 stat

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档