基于MFC,用模态对话框创建一个登陆对话框
静态显示图片或对话框
- 在
C*App::InitINstance()
中创建登陆界面
CLoginDialog logindlg;
logindlg.DoMoal();
Sleep(100)
- 为登陆对话框设置自动销毁
- 在类视图中选中
CLoginDialog
,为其添加WM_TIMER消息,自动添加OnTimer
函数。
void CLoginDialog::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
switch (nIDEvent)
{
case 1: // 响应定时器1
OnOK(); // 关闭对话框
KillTimer(1); // 销毁定时器1
break;
default:
break;
}
CDialog::OnTimer(nIDEvent);
}
- 重写CLoginDialog的
OnInitDialog
,在其中添加一个定时器
SetTimer(1,1000,NULL)
- 为对话框添加图片,静态加载或动态加载
- 实现效果
启动登陆对话框 - 问题
在登陆界面按下Enter,Esc仍然会响应,自动关闭对话框,屏蔽按键。
为CLoginDialog重写PreTranslateMessage
if ( pMsg->message == WM_KEYDOWN )
{
switch ( pMsg->wParam)
{
case VK_RETURN: //Enter
return TRUE;
case VK_ESCAPE: // ESC
return TRUE;
default:
;
}
}