注册 登录
编程论坛 C++教室

新手求助~~~~关于MFC窗口

ltyjyufo 发布于 2010-03-15 16:36, 749 次点击
一个基于对话框得程序:   
       为了保护一些东西,我想在程序运行时,在主窗口出现前,先弹出一个密码登陆窗口,密码正确就可以进入程序,反之就退出,程序运行结束。想知道在主窗口前怎么调用到登陆窗口。。。。假设密码就为123吧。


///////////////////////////////////////////////////纠正一下呵呵。。。。。。。
      可能是我的表达不是很正确出的错,这个问题我原本的意思是在程序运行的时候,先出现密码验证窗口,密码正确就继续向下执行出现软件正常的界面,不对就退出程序。。。。。。。

[ 本帖最后由 ltyjyufo 于 2010-3-16 13:01 编辑 ]
6 回复
#2
秀痘魔导士2010-03-15 16:39
CDialog.DoModal()
#3
ltyjyufo2010-03-15 16:50
  二楼说的是模式窗口???  详细一点哦
#4
秀痘魔导士2010-03-15 16:54
以下是引用ltyjyufo在2010-3-15 16:50:59的发言:

  二楼说的是模式窗口???  详细一点哦
因为模态窗口阻塞FRAME,那么目的不是达到了吗。你试试模态窗口建立之后,你的frame还能不能响应。
#5
quietstar2010-03-15 17:19
假设已有一个窗口类CTest和某一个窗口关联,那么可以在CMainFrame类的WM_CREATE消息处理函数OnCreate里面,return 0语句之前添加如下语句:
CTest test;
test.DoModal();
注意在MainFrame.cpp文件前面添加头文件#include "CTest.h"。

[ 本帖最后由 quietstar 于 2010-3-15 17:20 编辑 ]
#6
ltyjyufo2010-03-16 13:08
在程序运行的时候,先出现密码验证窗口,密码正确就继续向下执行出现软件正常的界面,不对就退出程序。。。。。。。
#7
quietstar2010-03-17 13:00
先写一个函数验证用户信息,然后在OnCreate里面进行调用,如果正确就返回0,错误就返回-1。返回0,密码验证窗口关闭,然后显示程序主界面;返回-1,程序退出,但会弹出一个对话框,提示类似“创建单文档程序失败”这样的信息。类似下面这样:
if(test.DoModal()==IDOK)
{
    if(userlogin(username,password))
    {
        return 0;
    }
    else
    {
        return -1;
    }
}
else
{
    return -1;
}
1