导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

如何制作一个登陆框??

ATMCash4423 C++工程师  2009-08-24 12:12:48
我一直都没有思路~
我用VC6.0做了一个登陆框,如果用户名和密码正确就弹出一个窗口。
可是我想在弹出第二个窗口的时候同时关闭那个登陆框~~因为那个登陆框是父窗口,如果关闭登陆框第二个窗口也会
关闭~~~怎么才能关闭第一个,第二个继续运行呢?

或者大家是怎么做一个软件的验证界面的?就是点开一个软件后出现让你输入用户名密码,正确就自动关闭并且弹出软件的
主界面??

请大家给我一个好思路啊!
...全文
190 点赞 收藏 17
写回复
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
worry_js 2009-08-29
[Quote=引用 8 楼 wind1987321 的回复:]
假设登录对话框为A,接下来弹出的主界面对话框为B,你应该将B设为Mainframe,在B对话框的
BOOL CMainDlg::OnInitDialog()中调用对话框A,
BOOL CMainDlg::OnInitDialog()
{
    CLOGINDlg dlg;
dlg.DoModal();//弹出A对话框
    CDialog::OnInitDialog();//到这一步才显示B对话框
    ...
}

关于登录的话,如果你的登录密码是固定的,就很简单,如果登录密码需要可以修改的话就要用到文件来存储登录信息。
如果密码固定的,假设用户名为admin,密码为demo
if(!(strcmp(m_password,"admin")||strcmp(m_user,"demo")))//登录信息匹配

[/Quote]学习了...
回复
lyihao 2009-08-24
就是把主界面做成第一个窗口,在主界面中调用登录框
回复
lyihao 2009-08-24
调整下顺序,在主界面那里弹出登录框
回复
aihaoaodiA6 2009-08-24
[Quote=引用 8 楼 wind1987321 的回复:]
假设登录对话框为A,接下来弹出的主界面对话框为B,你应该将B设为Mainframe,在B对话框的
BOOL CMainDlg::OnInitDialog()中调用对话框A,
BOOL CMainDlg::OnInitDialog()
{
    CLOGINDlg dlg;
dlg.DoModal();//弹出A对话框
    CDialog::OnInitDialog();//到这一步才显示B对话框
    ...
}

关于登录的话,如果你的登录密码是固定的,就很简单,如果登录密码需要可以修改的话就要用到文件来存储登录信息。
如果密码固定的,假设用户名为admin,密码为demo
if(!(strcmp(m_password,"admin")||strcmp(m_user,"demo")))//登录信息匹配

[/Quote]

回复
VR_Lab 2009-08-24
制作一个对话框,在该对话框中的OnOK()中判断密码是否正确,正确的话调用CDialog::OnOK();
然后在主对话框的InitInstance()中LoginT mylogin;
int response=mylogin.DoModal();
if (response==IDOK)
{

}
if (response==IDCANCEL)
{
return false;
}即可
回复
fffanpei 2009-08-24
顶1楼的链接
回复
icefairy 2009-08-24
文档在XXXApp中的InitInstance()函数中
对话框XXXDlg::OnInitDialog() 函数中
调用登录对话框;
在登录对话框中
判断,如果密码正确 则return
如果不争取则 exit(0)..~~

回复

//1,设计一个对话框资源,并添加该对话框类,以实现登录操作。
//2,在该对话框类中添加确定按钮的事件处理以及取消按钮的事件处理。
代码如下:
void CDlgLogin::OnBnClickedButton1()
{
if('1'==testMM||'2'==testMM)
{
MessageBox(NULL,TEXT("正确"),TEXT("登陆提示!"),NULL);
EndDialog(0);
}
else
{
MessageBox("用户名或密码不正确","提示");
return;
}

//取消按钮如下:
void CDlgLogin::OnBnClickedButton2()
{
exit(0);
}


在主对话框中加入如下代码,以调用你的登陆对话框。
BOOL CDataProjectDlg::OnInitDialog()
{
//登陆处理
CDlgLogin DLGlogin;
DLGlogin.DoModal();
//其它代码。。。。。
}



回复
wind1987321 2009-08-24
假设登录对话框为A,接下来弹出的主界面对话框为B,你应该将B设为Mainframe,在B对话框的
BOOL CMainDlg::OnInitDialog()中调用对话框A,
BOOL CMainDlg::OnInitDialog()
{
CLOGINDlg dlg;
dlg.DoModal();//弹出A对话框
CDialog::OnInitDialog();//到这一步才显示B对话框
...
}

关于登录的话,如果你的登录密码是固定的,就很简单,如果登录密码需要可以修改的话就要用到文件来存储登录信息。
如果密码固定的,假设用户名为admin,密码为demo
if(!(strcmp(m_password,"admin")||strcmp(m_user,"demo")))//登录信息匹配
回复
dengxuxing 2009-08-24
你先弄一个登陆框,比如类名是:CDenglu,
在XXXApp中的InitInstance()函数中写
CDenglu dengludlg;
if(dengludlg.DoModal()==IDOK){
.........
}
else{
..............
return FALSE;
}
是文档类的话要在
if (!ProcessShellCommand(cmdInfo))
return FALSE;
之前写
是对话框的话要在:
dlg.DoModal()之前写
回复
MoXiaoRab 2009-08-24
if(用户名密码正确)
关闭自己

在登录窗口的WM_CLOSE中进行处理,写Show主窗口的代码,就好了

到时候你直接给自己PostQuitMessage(0)就行
回复
maple_zhj 2009-08-24
先隐藏主界面,初始化时弹出 一个新的对话框“请登陆”,
然后输入正确。就关闭这个新对话框。然后显示主界面。
回复
youyifang 2009-08-24
把登录框做成messageBox的样式,让它在主窗口显示之前弹出,
回复
ATMCash4423 2009-08-24
大家不好意思啊,我是刚学VC,大家给的代码有的我看不懂,我只能给我看懂的代码加分~谢谢各位帮忙啊!
回复
ATMCash4423 2009-08-24
哈哈,我知道了原来我在对话框最后少加了一个return
void Cmydlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
if(m_yonghuming=="123"&&m_mima=="123")
{
MessageBox("成功!");
}
else
{
MessageBox("失败!");
return;
}
CDialog::OnOK();
}
加了这个RETURN之后,如果失败了直接返回,接着输用户名和密码!只有成功了以后才显示主窗口!
回复
ATMCash4423 2009-08-24
BOOL CNnnApp::InitInstance()
{
AfxEnableControlContainer();
Cmydlg mao;
int ddd=mao.DoModal();
if (ddd==IDOK)
{
}
if (ddd==IDCANCEL)
{
return(false);
}
问题来了!现在是可以弹出对话框了~但是只要是点IDOK,不管用户名密码对不对直接进入主窗口了……这个怎么办啊?
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……