用VC编的一个对话框程序。想在主界面前加一个界面。 
启动时显示启动界面(有标题栏,客户区是一张图片),然后在客户区点击鼠标左键。该界面消失,切换到主界面。 想着应该很容易的一个东西,就是不知道怎么实现。 
麻烦大家给讲讲吧。 
多谢多谢。 VC有splash screen。 
不过,splash screen好像只对基于文档的程序有用啊,我这个是个对话框程序 
而且第一个界面需要有同主界面一样的标题栏。好像和一般的启动封面程序不一样。 

解决方案 »

  1.   

    看来你这个完全可以不用SplashScren来做,可以在对话框上添加一个子窗口覆盖对话框的客户区,点击一下后销毁或者隐藏这个子窗口。在子窗口中可以绘制图片,或者直接从CStatic(PictureControl)重载。
      

  2.   

    你把文档程序里splashscreen代码(向导生成)考到你工程里来就可以里。对话框最上手里
      

  3.   

    不论是单。多文档和对话框都可以,你可以用一个对话框来实现啊!设置上ONTIMER消息(设置时钟)
      

  4.   

    各位老大能不能给详细讲讲啊。
    俺刚上手的,比较菜。试着在主Dialog前又加了一个一样大小的Splash对话框
    在InitInstance()里主Dialog  DoModal之前先加了splashDlg出来DoModal()一把
    【CSplashDlg pass;
    pass.DoModal();CMainDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();】然后在SplashDlg.cpp里添加了OnLButtonDown:
    【void CSplashDlg::OnLButtonDown(UINT nFlags, CPoint point) 
    {       ShowWindow(SW_HIDE);
    CDialog::OnLButtonDown(nFlags, point);
    }】现在问题是运行的时候出现Splash对话框,点左键,Splash不见了,主对话框也没出来(估计是闪了一下就消失了)
    是不是哪里没有处理好啊?还是要修改其他什么地方?麻烦大家给讲讲。要把ShowWindow(SW_HIDE)改成
    【DestroyWindow();
    AfxGetMainWnd()->UpdateWindow;】
    编译没有错误,运行的时候说“断言失败”(assertion failure)是不是DestroyWindow()用的不对啊?
      

  5.   

    然后在SplashDlg.cpp里添加了OnLButtonDown: 
    【void CSplashDlg::OnLButtonDown(UINT nFlags, CPoint point)  
    {       ShowWindow(SW_HIDE); 
    CDialog::OnLButtonDown(nFlags, point); 
    }】 这里你不要ShowWindow(SW_HIDE); ,用OnOK或OnCancel,不然你的那个启动界面还是处于DoModal状态(线程被挂在那里,运行不到下一句)