注册 登录
编程论坛 VC++/MFC

请问如何打开非模态窗口

chjiang78 发布于 2014-11-17 21:24, 472 次点击
在VC6下,教材提供的是单文档例子,CDialogModalless*    m_pModallessDlg;建立在C*View下。

但在对话框程序下,该句定义指针存在语法问题。也没有C*VIEW类,在C*APP或C*DLG类下建立都报错。请问怎样在对话框程序下,打开一个非模态窗口。
4 回复
#2
天使梦魔2014-11-19 10:39
那你看它类的定义在哪啊
#3
chjiang782014-11-19 13:02
是一个用用户登录的窗口变化。
首先打开类 CTitleBarColorDlg的窗口,然后在输入正确时进入CUserDlg类的窗口。
好像在CTitleBarColorApp::InitInstance()函数下建立:
CUserDlg dlg;
    m_pMainWnd = &dlg;   
    int nResponse = dlg.DoModal();
但登录窗口几乎失效~~不论按ener按钮还是cancel按钮,都自动出现第二个窗口?
#4
天使梦魔2014-11-19 14:05
都不知道你说的,窗口有隐藏和显示成员,如果想在建立时不想显示窗口就在构造里隐藏。如果是按钮问题就查按钮内代码看涉及到什么东西引起。又或者这代码本来就是Demo
#5
chjiang782014-11-19 19:27
找到了一个例子。光盘\06\0373
如何在主窗体显示前弹出登录框
在CShowLoginApp::InitInstance()
CShowLoginDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();

在登录窗口的CLogin::OnOK()
UpdateData(TRUE);
    if(m_Name!="MRKJ" || m_PassWord!="MRKJ")
    {
        MessageBox("用户名或密码错误!");
        return;
    }
    CDialog::OnOK();
在主对话框函数CShowLoginDlg::OnInitDialog()
CLogin dlg;
    if(dlg.DoModal() != IDOK)
    {
        OnOK();
    }
1