第四章作业.doc.doc
文本预览下载声明
编程习题:
一 创建一个多文档应用程序,要求实现如下功能:
1. 增加一个对话框栏,其中包含一个按钮控件和一个进度条控件;并将该对话框栏放置在
缺省工具栏的右侧相邻(见下图)。
2. 在状态栏中按照下图所指示的位置增加一个按钮控件和一个进度条控件。
3. 在对话框栏中,要求每按一次按钮,进度条将前进一步,进度条满格后,重新开始;并
要求无论主框架中是否有文档视图存在,这样的响应操作都能够正常发生。
4. 在状态栏中,也要求每按一次按钮,进度条将前进一步,进度条满格后,重新开始;但
要求这样的响应操作必须在主框架中至少有一个文档视图存在的情况下才能够发生。
5. 模仿工具栏、状态栏的隐藏/显示和命令用户界面修改功能,为对话框栏添加隐藏/显示和
命令用户界面修改功能。
6. 编译运行程序,并讨论下列问题:
= 1 \* GB2 ⑴ 如何实现将对话框栏放置到指定位置?
= 2 \* GB2 ⑵ 为什么能在在状态栏中加入控件,如何实现?
= 3 \* GB2 ⑶ 如何能使对话框栏中控件消息的响应与主框架中有无文档视图无关?为什么?
= 4 \* GB2 ⑷ 如何使得状态栏中控件消息的响应与主框架中有无文档视图相关联?如果主框架中没有文档视图存在时,相应的控件会发生什么变化?为什么?
= 5 \* GB2 ⑸ 使用操作进度条控件的关键步骤是什么?
编程步骤与提示:
1. 创建应用程序项目:
使用AppWizad创建一个多文档视图(MDI)应用程序项目。项目名自定义(例如,Test),
创建项目过程中的项目特征属性均可以采用缺省选项(资源语言选择为中文)。
2. 添加资源
⑴ 添加对话框栏资源IDD_DIALOGBAR
对话框栏模板是一个具有特定属性的对话框模板。该模板的特定属性和含义如下:
属性含义Child以子窗口显示None窗口无边框
具体创建方法和步骤:(以下的叙述中,如果在两个系统中没有区别将不分别叙述)
① 创建一个通用的对话框模板。
② 然后将模板的缺省ID修改为IDD_DIALOGBAR。
在Visual C++ 6.0中:
在Visual C++ .NET中:
③ 删除模板中缺省添加的按钮OK和Cancel。
④ 再将模板的Style属性的缺省值Popup和Border属性的缺省值Dialog Frame分
别修改为Child和None。
在Visual C++ 6.0中:
在Visual C++ .NET中:
⑤ 调整模板尺寸,注意将模板的高度调整为15个像素(与缺省工具栏高度相同)
长度根据模板中要安放的控件而定,例如本程序中建议为160个像素。注意将模
板中的虚线框扩张到与模板的外框重合。
⑥ 在模板中加入按钮(Button)控件,设置该控件的标题(Caption)为Button,保
留该控件ID的缺省值ID_BUTTON1;再添加进度条(Progress)控件,设置该
控件的Smooth属性选中,Static edge属性选中。两个控件的大小和位置参考下
图,特别要注意进度条的左上角与模板的左上角的偏移坐标为(4, 0)。
4
⑵ 添加菜单项
① 在主框架菜单(IDR_MAINFRAME)的“查看”子菜单中添加显示/隐藏对话框栏的
菜单项。菜单项名、标识和提示如下图所示:
在Visual C++ 6.0中:
在Visual C++ .NET中:
② 在子框架菜单(IDR_TESTTYPE)的“查看”子菜单中添加与主框架菜单中完全相
同的菜单项。
在Visual C++ 6.0中:
在Visual C++ .NET中:
⑶ 添加资源标识
为状态栏中放置添加按钮的窗格添加指示器标识符ID_INDICATOR_BUTTON。
添加方法如下:
选择该菜
单命令
按《New…》按钮
添加新资源标识符
按《OK》按钮
确认添加的标识符
在Visual C++ 6.0中:
选择该菜单
命令
按《New…》按钮
添加新资源标识符
选择该菜单
命令
按《OK》按钮
确认添加的标识符
按《New…》按钮
添加新资源标识符
选择该菜单
命令
在Visual C++ .NET中:
用相同的步骤为添加到状态栏中的按钮控件添加标识符ID_MYBUTTON。
用相同的步骤为添加到状态栏中的进度条控件添加标识符ID_MYPROGRESS。
添加后的资源符号表如下(注意,所添加的标识符的值使用缺省值):
④ 在字符串表(String Table)中添加以ID_INDICATOR_BUTTON为标识字符串。
为了使用于状态栏的指示器ID值连续,可以将原来的标识值修改为与其他指示器标识值相邻的值,例如:
ID_
显示全部