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();
}
{
// 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();
}
{
// 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++中创建对话框的两种方法:通过资源视图向导和类视图向导,并详细讲解了如何显示模式对话框和非模式对话框。此外,还阐述了如何设置对话框的属性,包括ID、标题、字体和风格,以及如何调整控件的TAB顺序进行布局。
4583

被折叠的 条评论
为什么被折叠?



