今天用到了登陆框的编写,自己摸索了好大一会儿,总算有了一点点头绪,现在总结一下。
要在基于对话框的应用程序中添加登陆框,也就是增加一个新的对话框。
在一般的基于对话框的应用程序的CTestApp.cpp中都会有这样的语句:
CTestDlg dlg; //程序的主对话框
m_pMainWnd = &dlg; //设置为主对话框,也就是所主对话框的结束也就意味着程序的结束
INT_PTR nResponse = dlg.DoModal(); //弹出主对话框
if (nResponse == IDOK) //根据对话框的返回值设置要执行的操作
{...
}
else if (nResponse == IDCANCEL)
{...
}
所以,如果要添加登陆框,只需
1、先建好新的登陆框类CLoginDlg,生成.cpp和.h文件,绘制好登陆框的内容。
2、然后,在CTestApp.cpp中包含
#include CLoginDlg.h
3、在CTestApp.cpp中,在弹出主对话框前弹出登陆框,可以这样设置,将上述代码替换成下边的:
CTestDlg dlg; //建立主应用程序对话框对象
CLoginDlg dlg_login; //建立登陆框对象
INT_PTR nResponseLogin = dlg_login.DoModal(); //弹出登陆框
if (nResponseLogin == IDOK) //根据登陆框返回值决定是否弹出主对话框
{
// TODO: 在此处放置处理何时用“确定”来关闭
m_pMainWnd = &dlg; //设置dlg为主对话框
INT_PTR nResponse = dlg.DoModal(); //弹出主对话框
if (nResponse == IDOK) //根据主对话框返回值选择操作
{
// TODO: 在此处放置处理何时用“确定”来关闭
// 对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置处理何时用“取消”来关闭
// 对话框的代码
}
// 对话框的代码
}
else if (nResponseIP == IDCANCEL)
{
// TODO: 在此放置处理何时用“取消”来关闭
// 对话框的代码
}
4、 对话框的返回值一般可以通过确定、取消等按钮操作调用函数EndDialog(返回值);返回。