(MFC)实现自动关闭的欢迎窗口

最近一直在做程序,心烦了就想弄点好玩的,^_^
首先声明,这是个很菜的东东,高手不要见笑~
看到很多软件在打开的时候,都有一个很炫的入场画面,然后才进入主窗口,我也来也做一个~
先在resource中添加一个dialog,当然,同时为它添加一个类LoginDlg,然后在主对话框的OnInitDialog()函数里创建一个该类的对象LoginDlg login,然后,就是重点了,因为要实现自动关闭,在这里需要创建一个线程,因为login.DoModal()函数会阻塞主进程,如果你直接使用login.OnCancel()的话,会提示你非法访问受保护成员,如果你直接login.PostMessage(WM_CLOSE)的话,由于主线程阻塞了,所以你无法post这个信息。
在线程函数里,用Sleep()设置你想要的停留时间,然后PostMessage(WM_CLOSE)就可以关闭入场对话框了。
//在OnInitDialog()函数里初始化,并用DoModal()等待
Ddlg logindlg;
Ddlg* t=&logindlg;
CreateThread(NULL,0,MyLogin,t,0,0);
logindlg.DoModal();
//线程函数
DWORD WINAPI MyLogin(LPVOID lpParam){
Ddlg* tmp=(Ddlg *)lpParam;
Sleep(1000);
tmp->PostMessage(WM_CLOSE);
return 0;
}
需要注意的是线程函数不能作为类成员函数,因此要在类外面实现,所以需要一个指向入场对话框的指针,他是通过lpParam参数来传递的。 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值