当前位置:首页 > Visual C++.NET课后答案
{
CStudyDlg mydlg;
if(IDOK==mydlg.DoModal()) { ……//单击“确定”后的处理 }
if(CANCEL==mydlg.DoModal()) { }
}
上面的程序中,先是定义一个对话框对象mydlg,然后利用这个对象调用DoModal函数以产生一个模态对话框。另外,在视图类中并不知道这个CStudyDlg对话框是什么样的数据类型,所以还必须在视图类的源文件中包含这个CStudyDlg类的头文件,如下:
#include \
调试运行该程序,会看到如图所示的运行结果,单击“显示对话框”菜单,就会出现刚刚设计的学习对话框,如图所示。
……//单击“取消”后的处理
非模态对话框:基于上面模态对话框步骤,修改OnDialog()
void CDialogView::OnDialog() {
CStudyDlg *pDlg=new CStudyDlg; pDlg->Create(IDD_DIALOG1,this); pDlg->ShowWindow(SW_SHOW); }
调试并运行Dialog程序,如图所示,这就是非模
态对话框的特点。因为程序显示非模态对话框时,并不会停留在某条语句处,所以CDialogView类的OnDialog函数内部的代码就会顺序地被执行,直到该函数执行结束,这时,程序就可以执行其它任务了,例如响应“文件”菜单的单击操作。
4. 如何实现在运行单文档应用程序时,首先弹出一个模态对话框?
答:.首先你要新建一个对话框,并为这个对话框新建一个类,假如为CMyDlg。在应用程序类(C***App)的InitInstance()函数里AfxEnableControlContainer();这句话后面添加如下代码(当然要包含头文件MyDlg.h): CMyDlg dlg;
if (dlg.DoModal() != IDOK) {
return FALSE;
}
5. 简述属性页对话框创建步骤?
答:属性页对话框是将多个对话框集中起来,通过标签将各个页面激活。与属性页对话框相关的类主
要包括CPropertySheet类和CPropertyPage类。一个属性页对话框可以包括一个CPropertySheet类和多 个CPropertyPage类对象。
CPropertySheet类是CWnd类的派生类,其对象作为属性对话框的窗口框架出现,主要实现管理各 个属性页面的作用。其用于管理属性页对话框的主要成员函数详见msdn。 CPropertyPage类是CDialog类的一个派生类,其用于管理属性页对话框的主要成员函数详见msdn。 使用CPropertySheet类和CPropertyPage类创建属性页对话框的示例步骤如下:
(1) 在资源编辑器中新增5个对话框资源,其ID值分别为:IDD_DIALOG1、IDD_DIALOG2、 IDD_DIALOG3、IDD_DIALOG4、IDD_DIALOG5。并为这些对话框资源新增5个以CPropertyPage类为基类的
派生类CMyPropertyPage1、CMyPropertyPage2、CMyPropertyPage3、CMyPropertyPage4、 CMyPropertyPage5。
(2) 在应用程序自动生成的对话框头文件和实现文件从工程中删除,并新增一个以CPropertySheet
类为基类的派生类CMyPropertySheet,该类的头文件和实现文件新增部分如下所示: 在头文件中增加: #include\ #include\ #include\ #include\ #include\ CMyPropertyPage1 m_Page1; CMyPropertyPage2 m_Page2;
CMyPropertyPage3 m_Page3; CMyPropertyPage4 m_Page4; CMyPropertyPage5 m_Page5;
在实现文件中的构造函数中加入:
CMyPropertySheet::CMyPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage):CPropertySheet(pszCaption, pParentWnd, iSelectPage) {
AddPage(&m_Page1); AddPage(&m_Page2); AddPage(&m_Page3); AddPage(&m_Page4); AddPage(&m_Page5);
}
(3)按照下面所示的代码,在应用程序类中修改InitInstance()函数。 #include \
//把以前生成默认对话框的两行代码修改成下面的两行代码
CMyPropertySheet dlg(\、如何创建一个属性页对话框?\
dlg.SetActivePage(3);
6. 基本控件有哪些?举例说明基本控件的方法?
答: Button、 StaticText、EditBox、ScrollBar、ComboBox、ListBox和CheckListBox等
例如按钮控件使用方法。
(1)新建一个基于对话框的应用程序项目,命名为“Button”。
(2)删除对话框上自带的“确定”和“取消”以及静态文本框。 (3)添加一个按钮和编辑框控件。
在右边工具栏上单击Button按钮拖动到对话框,修改Button的Captio为叮咚按钮。单击Edit Control按钮,拖动到对话框。
(4)给按钮添加消息处理函数,方法是双击“叮咚按钮”在OnBnClickedButton1()函数中添加如下代码:
void CButtonDlg::OnBnClickedButton1() {
SetDlgItemText(IDC_EDIT1, _T(\按钮功能实现了\
}
调试运行程序。单击“叮咚按钮”,结果如图所示。
7. 设计一个对话框应用程序。要求:能选择字体(宋体、黑体、楷体)、字型(粗体、斜体、下划线)、字号(1-64,带旋转按纽)并在“示例”组框中显示示例文字“基于对话框的应用”。
答:创建对话框程序,添加按钮,建立消息映射,添加代码,使用字体对话框CFontDialog。 8. 编写一个对话框应用程序,程序运行时,通过编辑框输如被减数与减数的值,单击“计算”按钮,将像是这两个数的差。
答:创建对话框程序,添加三个编辑框和一个计算按钮,为编辑框添加关联的double类型的变量,在按钮中进行计算,注意需要使用UpdateData函数进行更新。
9. 设计一个“用户登录对话框”,要求用户输入帐号和用户密码,单击“确定”按钮,
可以实现用户登录功能。 答:创建对话框程序,添加一个对话框,在InitInstance中添加代码进行验证,不正确则退出,正确则继续。
10. 要求通过滑动水平滚动条和垂直滚动条,同时有对应进度条显示滑动范围。
答:创建对话框程序,添加一个水平、一个垂直滚动条和一个进度条,为其添加关联变量。再添加一个按钮,添加消息映射函数,添加相关代码。
第五章习题 参考答案
1. 常见的菜单类型有哪几种?
答:常见的菜单可以分为三类:主菜单、弹出菜单和快捷菜单。
主菜单是指出现在应用程序主窗口或最上层窗口的菜单。主菜单由菜单名和菜单项构成。菜单名指出一组菜单项命令的主要功能和目标。常见的菜单名有:文件、编辑、帮助等。通常,每个主菜单都对应有一个弹出菜单作为它的子菜单,而一个菜单项或对应一个确定的
功能,或对应一个弹出菜单。
弹出菜单是指选择主菜单或一个菜单项时弹出的子菜单。用户可以定义多重嵌套的弹出式菜单,菜单项右边的三角符号表示有子菜单存在。可以通过放置分隔线在逻辑或功能上对菜单项进行分组。
快捷菜单是显示于窗体之上的浮动式菜单,快捷菜单的显示是由单击鼠标右键触发的,所弹出的具体菜单依赖于被选中的对象,以及光标或鼠标在工作区域内所指的位置,由此,快捷菜单又称为上下文菜单。
2. 简述菜单设计的主要步骤有哪些? 答:1.用菜单编辑器编辑菜单资源
2.将菜单资源链接到对话框(对于对话框的菜单) 3.添加消息响应函数 4.编写消息响应函数
3. 简述快捷菜单创建的基本步骤有哪些? 答:1. 添加菜单资源
2.建立消息映射,编辑响应函数
3.在CMainFrame类中加入WM_CONTEXTMENU消息的处理函数
4.编辑WM_CONTEXTMENU消息处理函数 4. 简述工具栏创建的基本步骤有哪些?
答:1.用编辑器编辑工具栏资源;2.若工具栏资源没有对应的菜单资源,或者没有给对应的菜单资源添加消息响应函数则进行3和4,否则编辑完成; 3.添加消息响应函数; 4.编写消息响应函数
5. 编写一个单文档应用程序MyDraw,为程序添加一个“颜色”主菜单,当运行程序时,
用户单击“颜色”菜单时,弹出系统自定义的颜色对话框。 答:略
6. 为应用程序MyDraw新增一个“线宽”主菜单,且“线宽”主菜单下包含“1”“2”
两个菜单项,在状态栏的最右侧,增加一个窗格,当运行程序时,用户选择了“线宽”下的“1”菜单项后,在窗格中显示“线宽1”,当用户选择了“2”是在窗格中显示“线宽2”。 答:略
7. 为应用程序MyDraw新增菜单项控制功能,当“线宽”下的“1”或“2”被选中时,在“1”或“2”前添加复选标记。 答:略
8. 为应用程序MyDraw中增加的菜单添加工具栏按钮,并为“线宽”菜单添加快捷菜单。 答:略
9. 新建一个基于对话框的应用程序,为其添加在单文档应用程序中添加的两个主菜单。 答:略
第六章习题 参考答案
1. 什么是DC?什么是CDC类?
答:DC:Windows使用抽象设备的管理方法,一个图形输出设备可以是显示器或打印机等物理设备。Windows用一个称为设备环境(Device Context,DC)的虚拟逻辑设备来描述这些输出设备。CDC:包括在MFC类库中的所有设备环境类的基类,对GDI的所有绘图函数进
共分享92篇相关文档