C++中创建对话框

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






评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值