+ -
当前位置:首页 → 问答吧 → 怎样创建一个模态对话框,类似于登录框

怎样创建一个模态对话框,类似于登录框

时间:2011-11-29

来源:互联网

如题,我想做一个登录框,模态的,程序运行时,主程序框显示在后面,模态登录框在前面,处理完登录信息之后才能进入主框架。
如果我的登录框的Dialog OnInitDialog里面处理DoModal时,编绎没问题,一运行就报错中断,如果在主框架的OnInitDialog里处理Domodal时,编绎没有问题,运行也不报错,但是框架显示不出来。
应该如何处理?

作者: lrypower   发布时间: 2011-11-29

1.在登录对话框点登录的时候进行判断 密码正确继续往下走 反之则return
2.不用主程序显示在模态对话框后面 按上面的思路就是一条线下来的

作者: c_losed   发布时间: 2011-11-29

我就是希望在程序刚开始运行时两个框同时显示,而不用我再点登录框

引用 1 楼 c_losed 的回复:

1.在登录对话框点登录的时候进行判断 密码正确继续往下走 反之则return
2.不用主程序显示在模态对话框后面 按上面的思路就是一条线下来的

作者: lrypower   发布时间: 2011-11-29

建议在App类得InitInstance里写你的对话框的DoModal,如果正确返回就继续向下执行,如果返回错误,就return FALSE;主对话框也不用显示了,比如:
C/C++ code

BOOL CYourApp::InitInstance()
{
    [color=#FF0000]// 类似于下面三行[/color]
    CLoginDlg longin_dlg;
    if (IDOK != longin_dlg.DoModal())
        return FALSE;

    CYourDlg dlg;
    m_pMainWnd = &dlg;
    INT_PTR nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
        // TODO: 在此放置处理何时用
        //  “确定”来关闭对话框的代码
    }
    else if (nResponse == IDCANCEL)
    {
        // TODO: 在此放置处理何时用
        //  “取消”来关闭对话框的代码
    }

    return FALSE;
}

作者: dream0411   发布时间: 2011-11-29

// 类似于下面三行

这行东西不要理了……刚用插入代码的这个功能,不熟

作者: dream0411   发布时间: 2011-11-29

刚才我试了这段代码,返回的是FALSE,要怎么才能成功呢?
引用 3 楼 dream0411 的回复:

建议在App类得InitInstance里写你的对话框的DoModal,如果正确返回就继续向下执行,如果返回错误,就return FALSE;主对话框也不用显示了,比如:
C/C++ code

BOOL CYourApp::InitInstance()
{
  // 类似于下面三行
  CLoginDlg longin_dlg;
  ……

作者: lrypower   发布时间: 2011-11-29

热门下载

更多