- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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);
至此,一个具有启动画面的小程序完成了,大家可以试试看它的运行效果。
您可能关注的文档
- it设备及网络管理办法.pdf
- it实训理论考试试卷.pdf
- j007动力匹配计算指导.pdf
- ivms-8800—机房动环监控系统解决方案-1.pdf
- javaatm柜员机模拟程序.pdf
- javascript特效制作精讲.pdf
- javaweb复习题(带答案).pdf
- java编程实例大全及详解答案(50例).pdf
- javascript跨域解决方案.pdf
- java程序设计习题集.pdf
- 2025年人工智能客服在航运行业应用场景研究报告.docx
- 交通运输十年发展:智慧交通系统行业报告.docx
- 2026年大连海洋大学学报编辑部公开招聘编辑人员备考题库有答案详解.docx
- 2025年跨境电商选品热点市场需求挖掘与趋势演变报告.docx
- 2025年新能源光伏组件回收处理技术发展报告.docx
- 2025年碳标签十年交通低碳认证与市场趋势报告.docx
- 中国板框式手动压滤机行业市场规模及未来投资方向研究报告.pdf
- 2025年位移传感器行业政策环境与市场机遇分析报告.docx
- 2025年工业机器人五年技术革新与智能工厂报告.docx
- 2025年儿童安全产业营销推广模式行业报告.docx
最近下载
- 高中政治2025届高考选必三《逻辑与思维》主观题答题模板.doc VIP
- 高中政治2026届高考选必三《逻辑与思维》主观题常见设问和答题语言.doc VIP
- CECS179-2005 健康住宅建设技术规程.pdf VIP
- CECS158-2015 膜结构技术规程.docx VIP
- CECS428-2016 电铸铜接地棒(线)技术规程.docx VIP
- CECS188-2005 钢管混凝土叠合柱结构技术规程.docx VIP
- CECS245-2008 自动消防炮灭火系统技术规程.docx VIP
- CECS69-2011 拔出法检测混凝土强度技术规程.docx VIP
- CECS293-2011 房屋裂缝检测与处理技术规程.docx VIP
- CECS03-2007 钻芯法检测混凝土强度技术规程.docx VIP
原创力文档


文档评论(0)