练习时可以使用基于对话框的工程,比较简洁,记得去掉AboutBox.
制作过程如下,我会截图
1.创建一个对话框,用于弹窗。另外导入一张位图资源(这个位图资源是等一下要放在这个新创建的对话框上的,用于弹窗时好看点。。。),本人从网上down了个全智贤的。。我会告诉你我把来自星星的你已经看完了么。。。
2.记得把新建的对话框中的确定和取消按钮删除,将Border改为None。这样就成了一个光秃秃的对话框了,方便我们拖放图片。
3.放个Picture控件上去,将控件的风格改为Bitmap,并在Image处选择我们自己搞好的图片。。可以按ctrl+t提前意淫一下。。。
4.双击新建好的这个对话框,弹出ClassWizard,我们为这个对话框建一个类,基于CDialog,取名CStartDlg。
5.为了保证启动画面顺畅运行,我们新建一个县城,专门用于启动这个动画。添加一个MFC类,取名CSplashForTestThread,并在其中添加成员变量CStartDlg* m_pStartDlg,并且在其中的InitInstance和ExitInstance中添加相关代码,代码如下:
BOOL CSplashForTestThread::InitInstance()
{
// TODO: perform and per-thread initialization here
m_pStartDlg = new CStartDlg;
m_pStartDlg->Create(IDD_DIALOG1);
m_pStartDlg->ShowWindow(SW_SHOW);
m_pStartDlg->UpdateWindow();
return TRUE;
}
int CSplashForTestThread::ExitInstance()
{
// TODO: perform any per-thread cleanup here
m_pStartDlg->DestroyWindow();
delete m_pStartDlg;
return CWinThread::ExitInstance();
}
void CSplashForTestThread::HideStartDlg(void)
{
m_pStartDlg->SendMessage(WM_CLOSE);
}
第三个函数用于发送退出消息,关闭窗体。
6.在主程序中实现启动画面,首先在CSplashForTestApp中添加成员变量CSplashForTestThread* m_pSplashForTestThread;,其次在InitInstance中添加如下代码:
m_pSplashForTestThread = (CSplashForTestThread*)AfxBeginThread(RUNTIME_CLASS(CSplashForTestThread,,0,0));
Sleep(1000);
一个用于启动线程,一个用于模拟该图片显示时间。。想多看会的可以设置时间长点。然后在OnInitDialg中添加如下代码,实现程序启动后自动隐藏开启动画效果即可。到这就结束了