正文

为应用程序添加闪屏(splash)功能2005-11-03 10:26:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/ainterly/6588.html

分享到:

创建一个启动窗口,用来显示应用程序的相关信息 为了使该启动窗口再最早时刻被显示,启动窗口最好的位置可以放到InitInstance()中。 步骤: 1、创建一个从CWnd派生的启动窗口类,为方便可以用Class wizard 2、为该类添加Create()成员函数,用来显示相关信息。        void CSplashWnd::Create(UINT nID)       {              m_bitmap.LoadBitmapEx(nID,FALSE);             //make the window at center              int x=(::GetSysytemMetrics(SM_CYSCREEN)-mbitmap.m_Width)/2;              int y=(::GetSystemMetrics(SM_CYSCREEN)-m_bitmap.m_Height)/2;               CRect rect(x,y,x+m_bitmap.m_Width,y+m_bitmap.m_Height);               CreateEx(0,AfxRegisterWndClass  ,0),"",                               WS_POPUP|WS_VISIBLE|WS_BORDER,rect,null,0);           } 3、添加WM_PAINT消息处理函数,把需要的位图绘制到屏幕上          void CWzdSplash::OnPaint()          {               CPaintDC dc(this); // device context for painting               // get bitmap colors               CPalette *pOldPal =               d c . S e l e c t P a l e t t e ( m _ b i t m a p . G e t P a l e t t e ( ) , FA L S E ) ;               d c . R e a l i z e P a l e t t e ( ) ;               // get device context to select bitmap into               CDC dcComp;               d c C o m p . C r e a t e C o m p a t i b l e D C ( & d c ) ;               d c C o m p . S e l e c t O b j e c t ( & m _ b i t m a p ) ;               // draw bitmap               d c . B i t B l t ( 0 , 0 , m _ b i t m a p . m _ Width,                                        m_bitmap.m_Height, &dcComp,0,0,SRCCOPY);               // reselect old palette               d c . S e l e c t P a l e t t e ( p O l d P a l , FA L S E ) ;           } 4、在应用程序类的InitInstance()函数开始处,创建启动窗口类的一个实例,并Create().             CSplashWnd  spWnd;              spWnd.Create(IDB_BITMAP);//create with your bitmap              spWnd.UpdateWindow();//send WM_PAINT 5、根据程序初始化时间的长短,可是适当改变窗口显示时间。             Sleep(time);//postpone splash time 6、以前还看过另外介绍splash的文章,方法和这个不一样,不知道还能不能找到。

阅读(3394) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册