字体
第(1/5)页
关灯
   存书签 书架管理 返回目录
    开CMainFrcom 节点,双击其中

    的OnCreate()函数,就可以在右侧客户区编辑CMainFrcom::OnCreate()函数。OnCreate()函数

    是CWnd 中窗口创建消息WM_CREATE 的处理函数,在使用AppWizard 生成的SDI 和MDI

    程序中,CMainFrcom 类已经默认添加了OnCreate()函数。在该函数中添加模态登录对话框的

    使用代码。

    (3)创建CLoginDialog 对话框类的对象实例。在CMainFrcom::OnCreate()函数最后的

    return 语句前加入如下代码:

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·74·

    CLoginDialog dlg; //创建CLoginDialog 的对象

    其次在创建对象后,可以加入其他代码,对对象的一些成员变量进行设置。

    3.运行模态对话框并获得返回值

    创建对话框类的实例后就可以通过CDialog::DoModal()函数运行模态对话框,并得到对

    话框的返回值。在上一步中创建对象的代码后继续添加如下代码:

    //运行模态对话框并获得返回值

    //如果返回值为IDCANCEL 则退出程序

    if (dlg.DoModal()==IDCANCEL)

    return -1; //返回值为-1,告诉MFC 销毁窗口

    CDialog::DoModal()函数的原形如下:

    virtual INT_PTR DoModal( );

    该函数根据对话框类对应的模板打开一个对话框,并挂起非该对话框的用户输入权,直

    到该对话框关闭。返回值是通过CDialog::EndDialog()函数设置的,该函数用于关闭对话框,

    并将惟一的参数作为DoModa()函数的返回值供调用窗口访问。

    在4.1.3 节第4 部分的消息处理函数代码中,CLoginDialog::OnOK()验证用户名和密码失

    败时,就调用了EndDialog()函数,并设置参数为IDCANCEL。因此如果验证失败,DoModal

    函数就会得到IDCANCEL 的返回值,之后程序退出。到此,整个实例的功能已经实现。

    运行程序,首先看到如图4-19 所示的登录对话框,提示程序用户输入用户名和密码,如

    果输入错误,则退出程序,如果输入正确,则打开主窗口。

    图4-19 登录对话框的运行效果

    此外,对话框中的控件变量,在程序中可以直接访问。DoModal()结束后,控件变量的

    值就是对话框结束前的最终结果。例如在实例Sample4_1 的CMainFrcom::OnCreate()函数中,

    访问dlg.m_szLoginNcom 就可以获取用户的登录名。

    4.3 非模态对话框

    本节将介绍另一类型的对话框,即非模态对话框的使用。这类对话框在没有关闭前,也

    能允许其他应用程序继续运行,并可以在应用程序间互相切换窗口。因此此类对话框的生存

    周期较长,也就是说非模态对话框的对象生
上一章 目录 下一页