C++中创建对话框

1.设计对话框资源
利用资源视图向导创建对话框资源
在资源视图节点点击新建对话框,按下alt+Enter设置对话框ID,按下ctrll+W设置关联的对话框类
利用类视图向导创建对话框
在类视图节点下选择new form ,出现新建对话框的界面,输入对话框类名和对话框资源ID,完成对话框的创建。
第二中方法更简单方便

2.创建并显示对话框
模式对话框
void CBMSDlg::OnOK()
{
     // TODO: Add extra validation here
    
     CLogin login;                    //定义CLogin对象
     login.DoModal();               //调用DoModal()方法显示模式对话框         
     //CDialog::OnOK();
}

创建时定义的是局部变量,用DoModal()方法创建对话框时当前进程被阻塞,直到模式对话框关闭,OnOK()方法完成,局部对象作用域消失,调用基类的西沟函数释放窗口资源


非模式对话框
CRegist regist;          //定义一个私有成员变量,
void CBMSDlg::OnCancel()
{
     // TODO: Add extra cleanup here
     if(!IsWindow(regist.m_hWnd))
     {
          regist.Create(IDD_REGISTDLG,NULL);          //创建对话框
     }
     regist.ShowWindow(SW_SHOW);                         //显示对话框
     //CDialog::OnCancel();
}

创建时定义的是成员变量,用Create()方法创建对话框时,当前线程不会被阻塞。关闭非模式窗口时并不是将窗口关闭,而是隐藏,所以再次点击按钮时创建对话框时会发生错误,因此需要在创建之前先判断对话框是否存在,如存在则不需要再次创建,只需要将隐藏的对话框显示,不存在时再创建对话框。

3.设置对话框的属性
选择 你要设置的对话框,按下ALT +ENTER建,进入对话框设置的界面。

在general选项卡中:ID:设置对话框的ID,Caption:设置对话框的标题,Font:设置对话框上内容的字体。Menu:设置对话框显示的菜单,选择一个菜单,运行时对话框将显示这个菜单。X,Y设置对话框显示是左上角的横坐标和纵坐标。

在style选项卡中:style:设置对话框的风格有3个属性,popup表示对话框是一个弹出式窗口,overlapped表示对话框是一个层叠窗口。child表示对话框是一个子窗体,子窗体只能在父窗体的内部显示。
title:表示对话框是否有标题栏。其它的都是一些字面意思,在实际应用中在慢慢的学习记忆。

同时也可以用代码设置对话框的属性。

4.对话框的布局
调整控件的TAB顺序,在对话框中按Ctrl+D组合键,将显示控件的tab顺序,单击某个控件,它的tab顺序变为1,依次点击,其它控件的tab顺序为2,3,4……






你可能感兴趣的:(C++)