实验六 对话框和控件二
- 格式:doc
- 大小:105.00 KB
- 文档页数:7
对话框和按钮控件实验报告实验(实习)报告实验(实习)名称对话框和按钮控件日期 5.15 得分指导教师院计算机与软件学院专业计算机科学与技术年级班次姓名学号实验内容:设计一个对话框,用于问卷调查,在教材【例Ex_reserch】基础上针对“上网”话题在提出一个问题:“你每天上网的平均时间”,该问题的备选答案是“<1小时”、“<2小时”、“<3小时”和“>3小时”,如图T9.1所示。
当回答问题后,单击“确定”按钮,弹出一个消息对话框,显示用户选择的内容。
实验步骤:1.创建工作文件夹2.设计“上网问卷调查”对话框(1)创建一个默认的基于对话框的应用Ex_Research。
(2)调整对话框的大小(宽度不变),将“确定”和“取消”按钮移至对话框的下方,参照图控件的布局,添加一个静态文本框,标题为“你每天上网的平均时间:”,保留默认的标识符。
(3)添加四个单选按钮控件,在其属性对话框中,分别将其标题设置为“<1小时”、“<2小时”、“<3小时”和“>3小时”,标识符分别设置为IDC_TIME_L1、IDC_TIMEL2、IDC_TIME_L3和IDT_TIME_M3。
(4)选中第1 个单选按钮IDC_TIME_L1的Group属性选项。
(5)添加一个静态图片控件,在其属性对话框中将其类型属性为“Frame(框架)”,颜色属性选为“Etched(蚀刻)”。
3.修改代码(1)在CEx_ResearchDlg::OnInitDialog函数中添加下列代码:CheckRadioButton(IDC_TIME_L1、IDC_TIME_M3、IDC_TIME_L1);(2)在CEx_ReaserchDlg::OnOk函数中添加下列代码://获得第四个问题的用户选择Str=str+”\n你每天平均上网的时间:\n”;nID=GetCheckedRadioButton(IDC_TIME_L1、IDC_TIME_M3);GetDlgItemText(nID,strCtrl);//获得指定控件的标题文本Str=str+strCtrl;4.编译运行并测试编译并运行后,显示“上网调查问卷”对话框,当回答问题后,单击“确定”按钮,出现相应的西欧系对话框,显示用户选择的内容。
vb6.0实验六习题与答案实验六专业_1、认识常用控件:单选按钮、复选框、框架、列表框、组合框、滚动条、滑动器(slider)、时钟、图形控件;2.学习在表单中创建常用控件2、学习在属性窗口和在程序代码中设置属性3、学习调用控件的方法4.学习编写每个控件、鼠标和键盘的事件过程。
二、实验内容1、单选按钮、复选框、框架1)将表格F1的标题设置为“复选框、框架和单选按钮”;将表格中复选框ch1、ch2ch1和CH2的高度和宽度分别设置为360和1000;程序运行时,check2处于非零状态。
FR1帧包含单选按钮OP1和op2。
2)设计窗体,要求①标题为“设置字体”;② 带边框的标签控件Label1以表格形式设置,高度和宽度分别为450和3800,标题为“欢迎VB”,字体大小为“4”,并显示在中间;③标题为“字体”框架包含两个标题分别为“楷体_gb2312”和“华文新魏”的单选按钮op1和op2;④ 标题为“Italic”的框架包含两个标题为“是”和“否”的单选按钮。
⑤ 编写相应控件的事件进程,使程序运行时,点击“Kaiti_gb2312”,标签控件的字体为Kaiti_gb2312,点击“Chinese New Wei”,标签控件的字体为Chinese New Wei;单击Yes,label控件的字体将为斜体。
单击“否”取消标签控件字体的斜体化。
privatesuboption1_click()标签1。
fontname=option1。
说明文字endsubprivatesuboption2_uu单击()label1.fontname=option2.captionendsubprivatesuboption3_click()label1.fontitalic=trueendsubprivatesuboption4_click()label1.fontitalic=falseendsub3)在窗体是设置设置框text1,其中文字为:黑体、四号、居中;设置单选按钮option1和option2,标题分别为“福州大学”和“阳光学院”,编写行当的事件过程,使得程序时,单击“福州大学”或“阳光学院”,在文本框中显示“福州大学”或“阳光学院”。
实验二 VB中窗体和基本控件应用一、实验目的(1)掌握VB6.0窗体的常用属性、常用事件和重要方法。
(2)掌握在Visual Basic6.0窗体上生成控件的方法。
(3)掌握设置启动窗体的方法.(4)了解窗体的生命周期。
(5)掌握标签、命令按钮、文本框的常用属性、重要事件和基本方法.(6)熟练掌握在窗体上创建上述控件的操作方法。
二、实验准备1 局域网多媒体微机实验室;2vb6。
0 软件三、实验要求写出实验报告。
四、实验内容与步骤(一)基础知识1、窗体是VB中的对象,具有自己的属性、事件和方法.●属性:窗体的属性决定了窗体的外观和操作.窗体属性既可以在程序设计时在“属性"窗口中手工设置,也可以在程序运行时由代码来实现.●常用事件:窗体常用的事件有Load、Click、DblClick、Activate和Deactivate等.其中Load事件是当窗体被装入工作区时触发的事件,常用来在启动应用程序时对属性和变量进行初始化。
Activate是当一个窗体成为活动窗口时所触发的事件,Deactivate是当另一个窗体或应用程序被激活时,当前窗体所发生的事件。
●常用方法:窗体的方法很多,其中许多方法都调用文本和图形,用于直接在窗体表面上输出、写或画,如:Print、Circle等.还有一些方法对窗体的行为产生影响,如Show方法使-个窗体可见;Hide方法用于隐藏一个窗体。
2、在窗体上添加控件窗体是设计VB应用程序的一个基本平台,几乎所有的控件都是添加在窗体上的。
对于生成的控件,可以调整控件大小、移动控件位置、使用网格精确定位控件;对于多个控件,还可以对它们进行排列、调整大小等操作。
另外,在VB中还允许可视地创建和编辑控件数组,这对于编组使用选择框、命令按钮等控件提供了很大方便.3、设置启动窗体在默认情况下,应用程序中的第一个窗体被指定为启动窗体。
应用程序开始运行时,此窗体就被显示出来。
如果想在应用程序启动时显示别的窗体,可以将其他窗体设置为启动窗体。
试验二、窗口控件的使用(续)实验目的和要求(1)设计一个如图3.1所示的“学生基本信息”对话框。
(2)在实验1的基础上,实现功能:在图2.1中的“课程信息”按钮下方添加一个“学生基本信息”按钮,单击该按钮,弹出“学生基本信息”对话框,单击“添加”按钮,学生基本信息显示在列表框中。
(3)在CEx_CtrlsDlg对话框中添加一个滚动条和两个滑动条来调整对话框的背景颜色的3个分量:R(红色分量)、G(绿色分量)和B(蓝色分量),结果如图3.2所示。
图3.1 “学生基本信息”对话框图3.2 设置对话框背景颜色实验准备和说明(1)具备知识:滚动条、进展条、滑动条、时间和日历控件。
(2)创建本次实验工作文件夹“…\Visual C++程序\实验\实验3”。
实验内容和步骤1.在实验3的工作文件夹中复制Ex_Ctrls文件夹将本书实验2中的Ex_Ctrls文件夹复制到实验3的工作文件夹中。
2.启动Visual C++ 6.0启动Visual C++ 6.0系统。
3.创建并添加“学生基本信息”对话框①选择“文件”→“打开工作区”菜单,将“…\Visual C++程序\实验\实验3\Ex_Ctrls”文件夹中的Ex_Ctrls项目打开。
②添加一个新的对话框资源,将ID号改为IDD_INPUT,标题为“学生成绩输入”,将对话框字体改为“宋体,9号”。
将OK和Cancel按钮标题改为“确定”和“取消”。
③调整对话框的大小,将“确定”和“取消”按钮移至对话框的下方,然后显示对话框网格。
④参看图3.1,向对话框添加如表3.1所示的控件。
表3.1学生基本信息对话框添加的控件⑤双击对话框模板空白处,为该对话框模板创建一个对话框类CInputDlg。
⑥在MFC ClassWizard的Member Variables页面中,确定Class name中是否已选择了CInputDlg,选中所需的控件ID号,双击鼠标或单击Add Variables按钮。
VisualC++应用程序设计实验报告之对话框和按钮的控件实验步骤与调试过程1.创建工作文件夹2.创建一个基于对话框的应用程序Ex_Research3.设计“上网问卷调查”对话框(1)按教程的步骤先将该对话框应用程序上机练习并通过(2)添加一个静态文本控件,标题为“你每天上网的平均时间”,保留默认的标识符(3)添加4个单选按钮控件,在其属性对话框中,分别将其标题设置为“<1小时”、“<2小时”、“<3小时”、“>3小时”,标示符分别为IDC_TIME_L1、IDC_TIME_L2 、IDC_TIME_L3、IDC_TIME_M4(4)选中第一个单选按钮的Group属性选项。
(5)划蚀刻线,添加静态图片控件,在其属性对话框中将其类型属性调整为“框架”,颜色属性选择“蚀刻”。
4.修改代码:(1)在OnInitDialog函数中添加如下代码:CheckRadioButton(IDC_TIME_L1,IDC_TIME_M3,IDC_TIME_L1 );(2)在OnOk函数中添加如下代码:str=str+"\n你每天平均上网的时间: \n";nID=GetCheckedRadioButton(IDC_TIME_L1,IDC_TIME_M3);GetDlgItemText(nID,strCtrl);str=str+strCtrl;5.编译运行并测试实验结果正常运行,可以按照要求显示。
由于初始化时已经设置了默认选,运行程序弹出对话框中每个提问均有选现象被选中,这样就避免了用户对某些问题未选择而带来的错误。
当用户选择完毕后,单击确认后,便弹出另一个对话框,将用户所选择的信息显示出来。
改程序界面简单明了,方便用户理解操作,而且对用户选择的内容及时反馈。
疑难小结通过本次实验熟练掌握了对话框的使用和控件创建和使用的方法主要算法和程序清单BOOL CEx_ResearchDlg::OnInitDialog(){CDialog::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARA TOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog. The framework does this automatically// when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization hereCheckRadioButton(IDC_AGE_L18,IDC_AGE_M38,IDC_AGE_18 T27);CheckRadioButton(IDC_CM_FTTL,IDC_CM_OTHER,IDC_CM_F TTL);CButton* pBtn=(CButton*)GetDlgItem(IDC_DO_POP);pBtn->SetCheck(1); //使“收发邮件”复选框选中return TRUE; // return TRUE unless you set the focus to a control}d CEx_ResearchDlg::OnOK(){// TODO: Add extra validation hereCString str,strCtrl;str="你的年龄";UINTnID=GetCheckedRadioButton(IDC_AGE_L18,IDC_AGE_M38);GetDlgItemText(nID,strCtrl);str=str+strCtrl;str=str+"\n你使用的接入方式:";nID=GetCheckedRadioButton(IDC_CM_FTTL,IDC_CM_OTHE R);GetDlgItemText(nID,strCtrl);str=str+strCtrl;str=str+"\n你上网主要是:";UINTnCheckIDs[4]={IDC_DO_POP,IDC_DO_READ,IDC_DO_GAME,I DC_DO_OTHER};CButton* pBtn;for(int i=0;i<4;i++){pBtn=(CButton*)GetDlgItem(nCheckIDs[i]);if(pBtn->GetCheck()){pBtn->GetWindowText(strCtrl);str=str+strCtrl;str=str+" ";}}MessageBox(str);CDialog::OnOK();}void CEx_ResearchDlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint(); }}。
实验1 创建对话框应用程序及控件使用一.实验目的1.掌握使用“MFC应用程序向导”创建对话框应用程序框架的方法2.掌握给对话框添加控件的方法,以及使用“MFC类向导”为控件通知消息映射消息处理函数的方法3.掌握使用“MFC类向导”为控件添加控件变量的方法4.掌握控件变量与控件的数据交换机制以及使用控件变量访问和控制控件的方法5.掌握对话框中添加自定义消息的方法二.实验内容1.创建一个Windows对话框应用程序,其界面要求实现以下功能:在下部的文本编辑框(Edit Control )中输入内容后,单击“添加”按钮,文本编辑框的内容被作为一个条目添加到上部的列表框(List Box)中2.为上一步创建的程序添加一条自定义消息,消息名为WM_MYMESSAGE,也可自己命名。
单击“添加”按钮时,将发送盖消息,该消息的处理函数将删除编辑框中已输入的所有内容。
三.实验步骤1.使用“MFC应用程序向导”创建一个对话框应用程序,项目名称编程者自己确定。
2.将主动生成的对话框中的静态文本控件和“取消”命令按钮删除,在窗口上部添加一个列表框(List Box)控件,在列表框中的静态文本控件和“取消命令按钮删除,在窗口上部添加一按钮左侧添加一个命令按钮(Button)控件.3.将“确定”按钮的caption属性修改为“退出”,新添加的命令按钮的caption属性修改为“添加”,修改对话框窗口的caption属性为“实验1”,调整各控件的大小和布局如上图所示。
4.为列表框控件添加一个控制变量,类别为control,变量名编程者自己确定,这里取名为m_list,为编辑框控件添加一个控制变量,类别为value,类型Cstring,变量名为m_Edit,也可由编程者自己确定。
5.为“添加”按钮添加并编写BN_CLICKED消息的消息处理函数,该函数代码如下:Void CShiyanDlg : : OnBnclickedButton1( ){//TODO:在此添加控件通知处理程序代码UpdateData(true); //将控件中的数据交换至控件变量If(!m_Edit . ISEmpty()) //如果编辑框内容不空,则将内容添加至列表框M_List . Addstring(m_Edit);}6.编译运行程序,在文本编辑框中输入内容并单击“按钮”,观察执行结果。
一、实验目的1. 熟练掌握窗体控件的基本使用方法;2. 了解不同窗体控件的功能和属性;3. 学会使用窗体控件进行简单的界面设计;4. 掌握窗体控件在程序中的应用。
二、实验原理窗体控件是图形用户界面设计的重要组成部分,通过使用窗体控件,可以方便地创建出具有丰富交互功能的界面。
在本次实验中,我们将使用C#编程语言,结合Windows窗体应用程序开发环境,学习窗体控件的基本使用方法和属性设置。
三、实验环境1. 开发工具:Visual Studio 2019;2. 编程语言:C#;3. 开发环境:Windows窗体应用程序。
四、实验内容与步骤1. 创建一个新的Windows窗体应用程序项目。
2. 在窗体上添加以下控件:(1)标签(Label):用于显示文本信息;(2)文本框(TextBox):用于输入和显示文本;(3)按钮(Button):用于触发事件;(4)单选按钮(RadioButton):用于选择多个选项中的一个;(5)复选框(CheckBox):用于选择多个选项;(6)下拉列表框(ComboBox):用于选择列表中的某个选项;(7)滚动条(HScrollBar):用于滚动窗体内容。
3. 设置控件的属性:(1)标签(Label):设置Text属性为“请输入姓名:”,设置Font属性为“微软雅黑,12号”;(2)文本框(TextBox):设置Name属性为“txtName”,设置Font属性为“微软雅黑,12号”;(3)按钮(Button):设置Name属性为“btnSubmit”,设置Text属性为“提交”,设置Font属性为“微软雅黑,12号”;(4)单选按钮(RadioButton):设置Name属性为“rdMale”,设置Text属性为“男”,设置Font属性为“微软雅黑,12号”;添加另一个单选按钮,设置Name 属性为“rdFemale”,设置Text属性为“女”,设置Font属性为“微软雅黑,12号”;(5)复选框(CheckBox):设置Name属性为“chkAgree”,设置Text属性为“我同意以下条款”,设置Font属性为“微软雅黑,12号”;(6)下拉列表框(ComboBox):设置Name属性为“cmbCountry”,设置Font属性为“微软雅黑,12号”;(7)滚动条(HScrollBar):设置Name属性为“hscRoll”,设置Font属性为“微软雅黑,12号”。
目录实验一熟悉Visual Basic 6.0编程环境 ....................................................................... 实验二Visual Basic语句基础 ............................................................................................ 实验三顺序结构 . (23)实验四选择结构(一) ..................................................................................................... 实验五选择结构(二) ..................................................................................................... 实验六循环结构(一) ..................................................................................................... 实验七循环结构(二) ..................................................................................................... 实验八循环结构(三) ..................................................................................................... 实验九循环结构(四) ..................................................................................................... 实验十一维数组程序设计 ................................................................................................. 实验十一二维数组程序设计 ............................................................................................. 实验十二控件数组和自定义数组程序设计 ..................................................................... 实验十三过程程序设计(一) ......................................................................................... 实验十四过程程序设计(二) ......................................................................................... 实验十五窗体和常用控件(一) ..................................................................................... 实验十六窗体和常用控件(二) ..................................................................................... 实验十七窗体和常用控件(三) ..................................................................................... 实验十八用户界面设计(一) ......................................................................................... 实验十九用户界面设计(二) ......................................................................................... 实验二十用户界面设计(三) ....................................................................................... 实验二十一图形操作 .........................................................................................................实验一熟悉Visual Basic 6.0编程环境【实验目的】(1)熟悉VB集成开发环境。
实验报告实验一vc6.0集成开发环境1、在VC++中,工程与各种源文件之间是什么关系?答:在VC++中,工程与各种源文件之间是包含与被包含的关系,即若要对一个或多个源文件进行编译和运行,必须将其插入到相应的工程中去。
2、一个VC++工程下会有3个文件夹,这3个文件夹分别是什么?以.cpp为后缀的文件会添加到哪个文件夹中?以.h为后缀文件会添加到哪个文件夹中?答:这3个文件夹分别是Source Files、Header Files和Resource Files,以.cpp 为后缀的文件添加到Source Files 中,为后缀文件会添加到以.h Files Header中。
3、以win32 console application工程为例,简述工程的建立,文件的添加,工程的编译和链接及工程的执行过程。
答:(1)创建VC6工程①点击“文件”菜单,选择“新建”菜单项,弹出“新建…”窗口;②切换“新建”窗口选项卡为“工程”选择,“Win32 Console Application”;③在“位置:”下的文本框内填入工程保存的文件夹位置,也可以点其右侧的“…”按钮来定位文件夹;④在“工程名称:”下的文本框内填入工程的名称,例如Prj1。
其它设置不用更改;⑤点“确定”后,出现“Win32 Console Application”设置向导窗口,选“一个空工程”,点“完成”,再点“确定”后,工程创建结束。
这时,一个空的Win32 Console Application工程就创建好了。
2)新建C 或C++源文件并插入工程的方法①点击“文件”菜单,选择菜单项“新建…”,弹出“新建”窗口;②选择“新建”窗口“文件”选项卡,选择“C++ Source File”;③在“文件”下的文本框内填入带后缀的源文件名,后缀为.c 或是.cpp,分别代表C源文件和C++源文件,例如填入main.c;④保证“添加到工程”前的复选框被选中,且其下的下拉列表框所选的工程为刚刚创建的空工程的名字;⑤点“确定”后,一个空的源文件main.cpp 就被插入工程Prj1 了。
韶关学院计算机公共教学实验进行表(实验报告)课程名称计算机语言与程序设计实验日期实验项目名称实验二:窗体、命令按钮、文本框和标签控件的应用实验类型(打√)基础√、综合、设计。
实验地点理工楼6楼号机房实验班级应到人数实到人数考勤情况主讲教师实验教师实验目的实验目的:1、掌握Visual Basic6.0窗体的常见属性的含义及其值的设置。
2、掌握Visual Basic6.0窗体的常用方法(如CLS方法、Print方法等),掌握用Print方法在窗体上输出特定格式的数据的设置.3、掌握Visual Basic6。
0窗体常用事件的使用。
4、掌握在多窗体中启动窗体的设置。
5、掌握在窗体上设置控件的几种方法.实验内容一、打开“D:\sy2”文件夹下面的“选择题及编程填空.Xls”文件,在对应位置输入正确的答案后以原文件名存盘。
二、编程题实验1:设置一个标题为“字体设置"的窗体,窗体的背景色为黄色,在窗体中设置二个命令按钮和一个文本框,每次单击“确定"按钮,在文本框中显示红色三号隶书字体,内容为“开学了,欢迎你来校报到!”,并使文本能自动换行显示,单击“结束”按钮,则退出程序运行。
(工程文件保存为:SY2_1.vbp,窗体文件保存为SY2_1。
frm)(说明:能使文本能自动换行显示的属性为MultiLine,其值为True时文本可以显示在多行,其值为False时文本只能显示在一行。
)实验步骤:第1步:创建新工程,在新窗体上创建二个命令按扭Command1、 Command2和一个文本框Text1。
第2步:设置对象的属性对象类型对象名属性设置窗体Form1Caption字体设置BackColor黄色命令按钮Command1Caption确定命令按钮Command2Caption结束文本框Text1 Text 空白Font三号隶书MultiLine True第3步:双击窗体,打开代码窗口补充完成代码编写Private Sub Command1_Click()Text1。
实验七.对话框和控件1.实验目的掌握基于对话框的程序设计,模式和非模式对话框的设计,如何建立对话框类以及利用菜单资源的对话框访问;旋转按钮、滑块、和进度条和选择卡控件的相关应用和程序设计控件的使用和响应函数的添加,掌握DDX和DDV技术。
2.关键成员函数UpdateData(),DoModal(),Create(),CheckRadioButton(),GetDlgItem(),New,Create,ShowWindow(),SetRange(),SetPos(),SetStep()、GetCurSel。
3.实验装置机房4.实验内容(1)单选框、复选框的使用…建立单文档文件名:Buttons…添加Dialog(IDD_Color).并为其添加新类,类名称:CMycolorvoid CMainFrame::OnColor(){// TODO: Add your command handler code hereCMycolor dlg;dlg.DoModal();}注意CMainFrame添加#include "Mycolor.h" 测试下…在Mycolor.h文件中添加申明:Public:int m_red;int m_blu;int m_gre;…在Mycolor.cpp的构造函数中添加成员数据的初始化CMycolor::CMycolor(CWnd* pParent /*=NULL*/): CDialog(CMycolor::IDD, pParent){m_red=0;m_gre=0;m_blu=0;}…在CMycolor.cpp中添加WM_INITDIALOG和IDOK的消息响应代码:BOOL CMycolor::OnInitDialog(){CDialog::OnInitDialog();// TODO: Add extra initialization hereCheckRadioButton(IDC_simplecolor,IDC_colorful,IDC_simplecolor);//将单色作为默认选项CButton* pBtn = (CButton*)GetDlgItem(IDC_red);pBtn->SetCheck(1);//设置默认选项。
void CMycolor::OnOK(){CButton *pBtn;UpdateData(TRUE);// TODO: Add extra validation herepBtn=(CButton *)GetDlgItem(IDC_red);if(pBtn->GetCheck()){m_red=255;}pBtn=(CButton *)GetDlgItem(IDC_gre);if(pBtn->GetCheck()){m_gre=255;}pBtn=(CButton *)GetDlgItem(IDC_blue);if(pBtn->GetCheck()){m_blu=255;} //判断哪个复选框被选中给颜色变量赋值CDialog::OnOK();}…在CButtonsView.h文件添加变量申明:public:int m_red;int m_gre;int m_blu;int m_wide;…在CButtonsView.cpp文件添加#include "Mycolor.h"和菜单项IDM_SetColor的消息响应函数:void CButtonsView::OnSetColor(){// TODO: Add your command handler code hereCMycolor dlg;if (dlg.DoModal()==IDOK){ m_wide=100;m_red=dlg.m_red;m_gre=dlg.m_gre;m_blu=dlg.m_blu;//获取对话框设置的颜色值Invalidate();}}void CButtonsView::OnDraw(CDC* pDC){CButtonsDoc* pDoc = GetDocument();ASSERT_V ALID(pDoc);// TODO: add draw code for native data hereCBrush draw(RGB(m_red,m_gre,m_blu));CBrush* oldbrush=pDC->SelectObject(&draw);//启用新画刷pDC->Rectangle(0,0,m_wide,m_wide);//画矩形边长100像素}现在单选框没有其作用,考虑单选框怎么用?(2)列表框在一组城市邮政编码中,城市名和邮政编码是一一对应的。
为了能添加和删除城市邮政编码列表项,需要设计一个这样的对话框,实现本例有两个要点:一是在添加时需要通过FindString 或FindStringExact来判断添加的列表项是否重复,然后通过SetItemData将邮政编码(将它视为一个32位整数)与列表项关联起来;二是由于删除操作是针对当前选中的列表项的,如果当前没有选中的列表项则应通过EnableWindow(FLASE)使[删除]按钮灰显,即不能单击它。
….添加并设计对话框用MFC AppWizard(exe)创建一个默认的基于对话框的程序City。
将对话框资源标题定为“城市邮政编码”,字体设为“宋体,9号”,创建此对话框类为CCityDlg。
删除原来的[Cancel]按钮,将[OK]按钮标题改为“退出”。
完善CCityDlg类代码(1)打开ClassWizard的Member Variables页面,看看Class name是否是CCityDlg,然后选中所需的控件ID标识符,双击鼠标或单击Add Variables按钮,依次为下列控件增加成员变量。
(2)将项目工作区切换到ClassView页面,在CCityDlg.h中添加成员函数public:BOOL IsValidate();…在CCityDlg::IsValidate函数输入下列代码:BOOL CCityDlg::IsValidate(){UpdateData(TRUE);m_strCity.TrimLeft();if (m_strCity.IsEmpty()){ MessageBox("城市名输入无效!"); return FALSE; }return TRUE;}IsValidate函数的功能是判断城市名编辑框中的内容是否是有效的字符串。
代码中,TrimLeft是CString类的一个成员函数,用来去除字符串左边的空格。
…用MFC ClassWizard为对话框添加WM_INITDIALOG消息映射,并添加下列代码:BOOL CCityDlg::OnInitDialog(){CDialog::OnInitDialog();m_dwZipCode = 100000; // 设置初始的邮政编码UpdateData( FALSE ); // 将邮政编码显示在控件中GetDlgItem(IDC_BUTTON_DEL)->EnableWindow( FALSE );// 使[删除]按钮灰显return TRUE; // return TRUE unless you set the focus to a control……..}…打开MFC ClassWizard,切换到Messsage Maps页面,为按钮IDC_BUTTON_ADD添加BN_CLICKED的消息映射,并增加下列代码:void CCityDlg::OnButtonAdd(){if (!IsValidate()) return;int nIndex = m_ListBox.FindStringExact( -1, m_strCity );if (nIndex != LB_ERR ){ MessageBox("该城市已添加!"); return; }nIndex = m_ListBox.AddString( m_strCity );m_ListBox.SetItemData( nIndex, m_dwZipCode );}…. 用MFC ClassWizard为按钮IDC_BUTTON_DEL添加BN_CLICKED的消息映射,并增加下列代码:void CCityDlg::OnButtonDel(){int nIndex = m_ListBox.GetCurSel();if (nIndex != LB_ERR ) m_ListBox.DeleteString( nIndex );else GetDlgItem(IDC_BUTTON_DEL)->EnableWindow( FALSE );}…. 用MFC ClassWizard为列表框IDC_LIST1添加LBN_SELCHANGE(当前选择项发生改变)的消息映射,并增加下列代码。
这样,当单击列表框的城市名时,将会在编辑框中显示出城市名和邮政编码。
void CCityDlg::OnSelchangeList1(){int nIndex = m_ListBox.GetCurSel();if (nIndex != LB_ERR ){m_ListBox.GetText( nIndex, m_strCity );m_dwZipCode = m_ListBox.GetItemData( nIndex );UpdateData( FALSE ); // 使用当前列表项所关联的内容显示在控件上GetDlgItem(IDC_BUTTON_DEL)->EnableWindow( TRUE );}}3)本例通过滚动条和两个滑动条来调整Visual C++所使用的RGB颜色的三个分量:R(红色)、G(绿色)和B(蓝色)。
(1) 用MFC AppWizard(exe)创建一个默认的单文档应用程序Ex_Color。
(2) 向应用程序中添加一个对话框资源IDD_COLOR,标题定为“调整颜色”,字体设为“宋体,9号”,创建此对话框类为CColorDlg。
(3) 删除原来的[Cancel]按钮,将[OK]按钮的标题改为“退出”。
(4) 打开对话框网格,参看图的控件布局,为对话框添加如表所示的一2) 完善CColorDlg类代码(1) 打开ClassWizard的Member Variables页面,看看Class name是否是CColorDlg,选中所需的控件ID标识符,双击鼠标。
依次为下列控件增加成员变量。
颜色RGB中的红色分量。