用VC编的一个对话框程序。想在主界面前加一个界面。
启动时显示启动界面(有标题栏,客户区是一张图片),然后在客户区点击鼠标左键。该界面消失,切换到主界面。 想着应该很容易的一个东西,就是不知道怎么实现。
麻烦大家给讲讲吧。
多谢多谢。 VC有splash screen。
不过,splash screen好像只对基于文档的程序有用啊,我这个是个对话框程序
而且第一个界面需要有同主界面一样的标题栏。好像和一般的启动封面程序不一样。
启动时显示启动界面(有标题栏,客户区是一张图片),然后在客户区点击鼠标左键。该界面消失,切换到主界面。 想着应该很容易的一个东西,就是不知道怎么实现。
麻烦大家给讲讲吧。
多谢多谢。 VC有splash screen。
不过,splash screen好像只对基于文档的程序有用啊,我这个是个对话框程序
而且第一个界面需要有同主界面一样的标题栏。好像和一般的启动封面程序不一样。
俺刚上手的,比较菜。试着在主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()用的不对啊?
【void CSplashDlg::OnLButtonDown(UINT nFlags, CPoint point)
{ ShowWindow(SW_HIDE);
CDialog::OnLButtonDown(nFlags, point);
}】 这里你不要ShowWindow(SW_HIDE); ,用OnOK或OnCancel,不然你的那个启动界面还是处于DoModal状态(线程被挂在那里,运行不到下一句)