MFC启动画面设计[实用].pdfVIP

  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文档。上传文档
查看更多
MFC 启动画面设计 玩过微软的 Office 的人都知道,每当打开Office 软件,在它初始化的那段 时间里,都会出现一个画面,这个画面就是启动画面。 所谓启动画面也就是 Splash Screen,你也可以说它是 “炫耀画面”。它常 常用以显示公司的标志和版权等信息。 目标 用一张位图来作为启动画面,在进入程序时显示。 策略 在应用程序类的 I n i t I n s t a n c e ()函数中,在最早时刻创建启动窗口。启 动窗口用一个位图类显示在普通窗口中。 步骤 1.创建一个启动窗口类 1) 用 ClassWizard 创建一个从一般 CWnd 类(当然也可以是 CFrameWnd 类)派 生的普通窗口类。如图所示: 2) 添加 Create()成员函数到该类,在该函数中装入启动窗口中显示的位图,以 及在屏幕中央创建该窗口。 void CWzdSplash::Create(UINT nBitmapID) { m_bitmap.LoadBitmap(nBitmapID); BITMAP bitmap; m_bitmap.GetBitmap(bitmap); int x=(::GetSystemMetrics(SM_CXSCREEN)-bitmap.bmWidth)/2; int y=(::GetSystemMetrics(SM_CYSCREEN)-bitmap.bmHeight)/2; CRect rect(x,y,x+bitmap.bmWidth,y+bitmap.bmHeight); CreateEx(0,AfxRegisterWndClass(0),,WS_POPUP|WS_VISIBLE|WS_BORDE R,rect,NULL,0); } 3) 用 ClassWizard 添加一个 WM_PAINT 消息处理函数到该窗口类中,在这里用 BitBlt()把位图绘制到屏幕上。 void CWzdSplash::OnPaint() { CPaintDC dc(this); // device context for painting BITMAP bitmap; m_bitmap.GetBitmap(bitmap); CDC dcComp; dcComp.CreateCompatibleDC(dc); dcComp.SelectObject(m_bitmap); // draw bitmap dc.BitBlt(0,0,bitmap.bmWidth,bitmap.bmHeight,dcComp,0,0,SRCCOPY); } 2.把启动窗口类插入到 InitInstance()函数中 1) 在应用程序类的 InitInstance() 函数的开始处,创建该启动类的一个实例,调 用它的 Create() ,并强制它进行绘制。 CWzdSplash wndSplash; //创建启动窗口类的实例 wndSplash.Create(IDB_BITMAP1); wndSplash.UpdateWindow(); //send WM_PAINT 2) 因为启动窗口类创建在堆栈中,一旦InitInstance()返回,该窗口将被自动销 毁,因此,如果应用程序花费大量时间进行初始化,则不必采用在应用程序中 加延时的方法,使启动窗口停留足够长的时间以确保读取显示的信息;如果应 用程序花费很少时间进行初始化,或者担心高速机器把启动窗口变成影像,添 加下面代码行到 InitInstance( ) 的某个地方以对应用程序进行延时处理。 // add if splash screen too short Sleep(2000); 至此,一个具有启动画面的小程序完成了,大家可以试试看它的运行效果。

文档评论(0)

高胖莹 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档