当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

上海交通大学:《C++程序设计与实践》课程教学资源(学习资料)基于MFC的对话框程序

资源类别:文库,文档格式:PDF,文档页数:22,文件大小:1.36MB,团购合买
点击下载完整版文档(PDF)

基于MC的对话框程序 一、利用AppWizard应用程序向导生成程序框架 新建项目,选择“MFC”模板中的“MFC应用程序”,给项目一个名称,如Figure1所 示。 新迷喷目 最近的规板 NET Framework4,排序依据:默制值 习国 搜来已安装的模板 已安装的模板 品 MFC ActiveX控件 Visual C++ Visual C++ ATL CLR 體MFC DLL Visual C++ 常规 品MrC应用序 Visual C++ 式 MC应用程字 Win32 卡其他语言 具他项目类型 建模项目 试项目 联机摸板 名称N: MyDlg 位置L: d:\documents\visual studio 2010\Projects 浏览B… 解夫方卖芒称M: MyDlg ☑为蜗夫方贵建目灵D) 国活恤到源代码言是U 取消 Figure1新建项目 在“MC应用程序向导”的“应用程序类型”中选择“基于对话框”:在“用户界面功 能”中勾选“最小化框”与“最大化框”复选框。其他,默认。最后点击完成。如Figu「e2, Figure3所示

基于 MFC 的对话框程序 一、利用 AppWizard 应用程序向导生成程序框架 新建项目,选择“MFC”模板中的“MFC 应用程序”,给项目一个名称,如 Figure 1 所 示。 Figure 1 新建项目 在“MFC 应用程序向导”的“应用程序类型”中选择“基于对话框”;在“用户界面功 能”中勾选“最小化框”与“最大化框”复选框。其他,默认。最后点击完成。如 Figure 2, Figure 3 所示

MFC应用程序向导-MyDlg 应用程序类型 概述 应用程序类型: 项目类型: 应用程序类型 O单个文档S) OMFC标准A) 复合文档支持 ○多个文档) Windows资源管理器) 文档模板属性 ☐选顶卡式文档⑧) OVisual Studio) 数据库支持 ○基于对话框如) OfEice() 用户界面功能 ☐使用TL对话框) 视觉样式和颜色) 高级功能 ○多个顶级文档) Windows本机/默认 生成的类 ☑文档/视图结构支持y) ☐启用视觉样式切换C) 资源语言血): MFC的使用: 中文简体,中国) ⊙在共享LL中使用MFC) O在静态库中使用MFC) ☑使用Unicode库望 〈上一步下一步)幻完成☐ 取消 Figure 2

Figure 2

MFC应用程序向导-MyDlg ?X。 用户界面功能 概述 主框架样式: 命令栏黛单工具栏/功能区) 应用程序类型 ☑粗框架) ○使用经典菜单⑧) ☑最小化框) 复合文档支持 口使用传统的停靠工具栏☒) 回最大化框) 口使用测览器样式的工具栏留) 文档模板属性 ☐小化 ⊙使用菜单栏和工具栏0) 数据库支持 ☐最大化) ☑用户定义的工具栏和图像但) 用户界面功能 ☑系统菜单) ☑个性化菜单行为如 高级功能 ☑“关于”框⑧) O使用功能区®) 生成的类 ☑初始状态栏 ☐拆分窗口) 对话框标题⑨): MyD1g 子框架样式 回子最小化框侧) ☑子最大化框亿) ☐子最大化四) 〈上一步下一步〉完成取消 Figure 3 在Figure3中,可在“对话框标题”中更改对话框的标题。此处采用默认的MyDIg。 生成的初始项目,如Figure4所示。 Ta00:在地借适色位件, 年0 Figure 4

Figure 3 在 Figure 3 中,可在“对话框标题”中更改对话框的标题。此处采用默认的 MyDlg。 生成的初始项目,如 Figure 4 所示。 Figure 4

经常用到的菜单、视图等在Figure4中用红框已标出。 接着删掉Figure.4中的“确定”与“取消”按钮,在图中已用绿框框出。然后选中Figure 4中的“TODO:在此放置对话框控件”,右键,选择属性。在弹出的对话框中找到Caption, 将其值改为姓名和学号,同时将该对话框控件移动至顶端,见Figure5。 MyDlg.re-DD.DIALOG-Dialog°× 111110 IDC STATICL (Text control)I5 酒2!回回 H1202092 Acccept File:False Disabled Fakse Help ID False Visible True Align Text Center Border False Ca6a6Hw1202092] Center Imag False Client Edge False ..: End Ellipsis False Modal Fram False No Prefix False No Wrap False Natify False Path EIpsis False 风e Size C。Falte 日原丑图修 Right To Lef False 日0个情深60个签告00个满应 说 文件 Word Elipsi False IDC_STATICI (Tex Group IDC_STATIC abstcp False Figure 5 二、添加控件与相关程序 如果当前工作处于设计对话框时,“工具箱”窗口就会给出各种VC++提供的常用控件。 如果找不到“工具箱”,可在“视图”菜单中选择“工具箱”。(其他视图找不到时,也可按 这种方式调出。)“视图”菜单及“工具箱”窗口,在Figure4中顶端和右端的红框中可见。 如果选择“工具箱”后,看不到任何控件,请看看程序是否处于调试状态:如果处于调试状 态,请退出调试状态再试试。 1、添加按钮控件 选择“资源视图”,双击“IDD_MYDLG_DIALOG”,再选择“工具箱”,找到“Button”控 件,拖至对话框“MyDIg”的合适位置,如Figure6所示。“资源视图”可在“视图”菜单中 调出,也可在Figure4中低端红框标出的位置找到

经常用到的菜单、视图等在 Figure 4 中用红框已标出。 接着删掉 Figure 4 中的“确定”与“取消”按钮,在图中已用绿框框出。然后选中 Figure 4 中的“TODO:在此放置对话框控件”,右键,选择属性。在弹出的对话框中找到 Caption, 将其值改为姓名和学号,同时将该对话框控件移动至顶端,见 Figure 5。 Figure 5 二、添加控件与相关程序 如果当前工作处于设计对话框时,“工具箱”窗口就会给出各种 VC++提供的常用控件。 如果找不到“工具箱”,可在“视图”菜单中选择“工具箱”。(其他视图找不到时,也可按 这种方式调出。)“视图”菜单及“工具箱”窗口,在 Figure 4 中顶端和右端的红框中可见。 如果选择“工具箱”后,看不到任何控件,请看看程序是否处于调试状态;如果处于调试状 态,请退出调试状态再试试。 1、添加按钮控件 选择“资源视图”,双击“IDD_MYDLG_DIALOG”,再选择“工具箱”,找到“Button”控 件,拖至对话框“MyDlg”的合适位置,如 Figure 6 所示。“资源视图”可在“视图”菜单中 调出,也可在 Figure 4 中低端红框标出的位置找到

gre-IDD-DIALOG- 工具格 114111…1111 十指针 -可8 01202092 Combo Box List Box Group Box Radio Button Static Text Picture Control Horizontal Scroll Ba Vertical Scroll Bar Sder Control Spin Control Progress Control 量Hot Key List Control 正Tree Control Figure 6 更改Button1的按钮标题为“按钮”。在Button1的“属性”对话框中设置“Caption” 的值为“按钮”。 2、添加静态文本控件(Static Text)。 和添加按钮控件一样,在适当的位置添加静态文本控件,将其Caption的值改为空,将 其ID改为“DC_STATIC1”。(注意。采用默认的ID一一“IDC_STATIC'”,将不可以为控件添加 一些变量。) 3、添加静态文本框变量。 选中上面添加的静态文本框,右键,选择“添加变量”,“添加成员变量向导”如Figure 7所示,在类别中选择Value,在变量类型中选择“CString”,再给变量取一个名称,如 m_static_str1,最后点击完成。此时,在“MyDIgDIg.h”文件中,可见CMyDlgDlg类中增加 了一个数据成员m static str1。 添加成员变盈向导-MyDlg 四MyDlg 欢迎使用添加成员变里向导 访问4): public 又☑控件技里@) 变里类型): 控件D): 类别红): CString IDC_STATICI Value 变里名): 控件类型) 最大字符数): m_static_str1 LTEXT Figure 7 4、添加按钮事件处理程序。 选中“按钮”控件,右键,选择“添加事件处理程序”。在弹出的“事件处理程序向导” 界面中,按Figure8设置消息类型为“BN_CLICKED”,类列表为“CMyDlgDlg”,函数处理程

Figure 6 更改 Button1 的按钮标题为“按钮”。在 Button1 的“属性”对话框中设置“Caption” 的值为“按钮”。 2、添加静态文本控件(Static Text)。 和添加按钮控件一样,在适当的位置添加静态文本控件,将其 Caption 的值改为空,将 其 ID 改为“IDC_STATIC1”。(注意。采用默认的 ID——“IDC_STATIC”,将不可以为控件添加 一些变量。) 3、添加静态文本框变量。 选中上面添加的静态文本框,右键,选择“添加变量”,“添加成员变量向导”如 Figure 7 所示,在类别中选择 Value,在变量类型中选择“CString”,再给变量取一个名称,如 m_static_str1,最后点击完成。此时,在“MyDlgDlg.h”文件中,可见 CMyDlgDlg 类中增加 了一个数据成员 m_static_str1。 Figure 7 4、添加按钮事件处理程序。 选中“按钮”控件,右键,选择“添加事件处理程序”。在弹出的“事件处理程序向导” 界面中,按 Figure 8 设置消息类型为“BN_CLICKED”,类列表为“CMyDlgDlg”,函数处理程

序名称为“OnBnClickedButton:1”,最后点击“添加编辑”,向导会自动退出,然后转动 “MyDIgDIg.cpp”文件中“OnBnClickedButton1()”函数处。在该函数处内部按Figure9添加 代码。运行程序,点击按钮试试。 注1,当某控件对应的变量值发生变化时,需要用UpdateData(FALSE)更新控件显示内容, 否则控件仍为原来的值。 注2,若要删除某个事件函数,选择“项目”菜单中的“类向导”(如果项目菜单中没 有类向导,切换到“资源视图”,再选择“项目”即可看到“类向导”),按Figure10中选择 想要删除的处理程序。 事件处理程序向导-MyDIg 欢迎使用事件处理程序向导 命令名 IDC_BUTTONI 消息类型《): 类列表L): BN_CLICKED CAboutDlg CMyDlgApp BCN HOTITEMCHANGE CMyDlgD1g 函数处理程序名称): OnBnClickedButtonl 处理程序说明 指示用户单击了按钮 添加编辑A) 取消 Figure 8 void CMyD1gD1g:OnBnClickedButton1 ( { /TODO:在此添加控件通知处理程序代码 m_static_strl=“按钮按下了。“: UpdateData(FALSE) Figure 9

序名称为“OnBnClickedButton1”,最后点击“添加编辑”,向导会自动退出,然后转动 “MyDlgDlg.cpp”文件中“OnBnClickedButton1( )”函数处。在该函数处内部按 Figure 9 添加 代码。运行程序,点击按钮试试。 注 1,当某控件对应的变量值发生变化时,需要用 UpdateData(FALSE)更新控件显示内容, 否则控件仍为原来的值。 注 2,若要删除某个事件函数,选择“项目”菜单中的“类向导”(如果项目菜单中没 有类向导,切换到“资源视图”,再选择“项目”即可看到“类向导”),按 Figure 10 中选择 想要删除的处理程序。 Figure 8 Figure 9

MFC类向导 MFC Class Wizard 项目P吵 类名N: MyDlg CMyDlgDlg 添动加类C~ 基类: CDialogEx 类声明: mydlgdlg.h 资源 IDD_MYDLG_DIALOG 类实现L mydlgdlg.cpp 命令消息酒数成员变量方法 御幸命令 添动加处理程字A) 对象D(B: 当息(S: IDABORT BN_CLICKED 除处理促序(D) IDC_BUTTON1 BCN DROPDOWN 编端代码(日 IDC_STATIC BCN_HOTITEMCHANGE IDCSTATIC1 BN DOUBLECLICKED IDCANCEL BN_KILLFOCUS IDCLOSE BN_SETFOCUS IDD_ABOUTBOX NM_GETCUSTOMSPLITRECT IDD MYDLG DIALOG NM CUSTOMDRAW thUrIn AATI1 CArC1IANI广n 成员函数M小: 国数名称 命令ID 消急 IDC_BUTTON1 BN_CLICKED Figure 10 5、添加编辑框(Edit Control)。 仿照3中的说明,给Edit Control添加对应的字符串变量m_edit_str1。接着在按钮按下 对应的函数处(双击“按钮”可跳转至该处)按4中添加相应代码,见Figure11。 MyDlg.rc-IDD_MYDLG_DIALOG-Dialog void CMyDlgDlg:OnBnClickedButton1() 1∥TOD0:在此添加控件通知处理程序代码 tatic.3tr1=“按钮按下了。“ MyDlg m edit str1="按钮按下。 UpdateData(FALSE) HD1202092 :. 示例编辑框 按钮 Figure 11 6、添加单选框(Radio Button)。 添加两个Radio Button到对话框中,分别与文本框和静态文本框对齐。接着添加Group

Figure 10 5、添加编辑框(Edit Control)。 仿照 3 中的说明,给 Edit Control 添加对应的字符串变量 m_edit_str1。接着在按钮按下 对应的函数处(双击“按钮”可跳转至该处)按 4 中添加相应代码,见 Figure 11。 Figure 11 6、添加单选框(Radio Button)。 添加两个 Radio Button 到对话框中,分别与文本框和静态文本框对齐。接着添加 Group

Box控件,该控件只是为了美观。按Figure12更改添加控件的Caption。将第一个单选框的 Group的属性为true,同时为其添加bool型变量m_radio_bool,见Figure13。 和Figure11一样,给按钮添加相应的代码,见Figure14。 注1,“UpdateData);”函数的默认参数为TRUE,当为TRUE时,表示从控件传输数据 给对应的变量:当为FALSE时,表示从变量传输给对应的控件。 注2,Figure12中顶端红框标出的工具栏可以用于控件的布局,如对齐等。 的巨」万出包的口,月⊙2”6了名k: 修的p的: 黄源视西-MyDg MyDlgDig-cPP MyDIg..rc-IDDDIALOG-Dialog°×MyDIgDlg.h MyDlg 4□MyDIg.rc* 4▣Dialog □MyDlg 口可x 国IDD_ABOUTBOX IDD_MYDLG DIALOG H日1202092 b□leon 选择進来显示按钮拔下 p□String Table 示例编拍在 编框显示门 b.▣Version ○静恋文本显示喱 按超 Figure 12 欢迎使用还加成员变里向导 外观 Auto True Bitmap False Caption 编细柜显示 访问4) Client Edge False ☑控件没里0) Flat False publie Horizontal A默认值 变里类型W): 控件1D): 类): Icon False BOOL IDC_RADIO1 Value Left Text False 变里名妙: 控件类型) 品大字行数) Modal Fram False nradio_bool RADIO Multiline False Notify False 最小值的 员大值但) Push Like False Right Align 1 False h文件) cP文件里) Right To Lef False Static Edge False 注释)/不需要表示法) Transparent False Vertical Alig1默认值 d (Name) IDC_RADIO1 (Rac Group True D IDC RADIO1 Tabstop False 完成☐取消 Figure 13

Box 控件,该控件只是为了美观。按 Figure 12 更改添加控件的 Caption。将第一个单选框的 Group 的属性为 true,同时为其添加 bool 型变量 m_radio_bool,见 Figure 13。 和 Figure 11 一样,给按钮添加相应的代码,见 Figure 14。 注 1,“UpdateData();”函数的默认参数为 TRUE,当为 TRUE 时,表示从控件传输数据 给对应的变量;当为 FALSE 时,表示从变量传输给对应的控件。 注 2,Figure 12 中顶端红框标出的工具栏可以用于控件的布局,如对齐等。 Figure 12 Figure 13

void CMyDlgD1g:OnBnClickedButton1() /ToD0:在此添加控件通知处理程序代码 UpdateData():f/使得选择的Radio Buttonf值传到变里m_radio_bool中 if (0 ==m radio bool) m_static_str1 ="" m_edit_str1=“选择了我,按钮按下了。“: } else { m_static_.str1="选择了我,按钮按下了。": m_edit_str1 ="" UpdateDat a(FALSE) Figure 14 7、添加多选框(Check Box)。 更改其Caption为“是否显示按钮”。添加bool型变量m_check_.bool。在 OnBnClickedButton:10函数处添加相应代码,见Figure15。 Evoid CMyDlgD1g:OnBnClickedButton1 ( { /TOD0:在此添加控件通知处理程序代码 pdateData():f/使得选择的Radio Buttont值传到变量n_radio_bool中 if(m_check_bool)//如果选中了显示按钮提示框 { if (0==m_radio_bool) { m_static_strl=“": m_edit_str1=“选择了我,按钮按下了。": } else m_static_tr1=“选择了我,按钮按下了。“: m_edit_str1=“": } else m_static_.strl=““: m_edit_str1 ="" UpdateDat a(FALSE): Figure 15

Figure 14 7、添加多选框(Check Box)。 更 改 其 Caption 为 “ 是 否 显 示 按 钮 ”。 添 加 bool 型变量 m_check_bool 。 在 OnBnClickedButton1()函数处添加相应代码,见 Figure 15。 Figure 15

8、添加Slider Control。. 更改其Auto Ticks和Tick Marks的值为True,接着给控件添加整型变量m_slider_.int,将 在编辑框中显示它的值。添加编辑框(Edit Control)控件,给它添加字符串型变量m_edit str2, 然后给该控件添加事件函数,选择NM CUSTOMDRAW(当用户拖动滚动条时,该函数响应), 函数名默认,给该函数添加相应代码,见Figure17。 国MyDIg ▣▣8 HJ1202092 选择谁来显示"按钮按下“ 示例编辑框 ○编辑框显示 ○静态文本框显示 按钮 口是否显示按钮 示例编辑框 Figure 16 lvoid CMyDlgDlg:0nNMCustomdrawSlider1(NMHDR *pNMHDR,LRESULT *pResult) LPNMCUSTOMDRAW pNMCD reinterpret_cast (pNMHDR) /TODO:在此添加控件通知处理程序代码 *pResult 0: JpdateData():/使得Slider当前位置值传输给变里n_slider_int CString str: str.Format(T("Slidert位置:%d"),m_slider_int):/∥将m_slider_int转换为字符串 m_edit_str2 str: JpdateData(FLSE):/∥更新显示编辑框内容 } Figure 17 9、添加Combo Box控件 添加完毕后,更改其Data属性的值为“Red Duck;;Black Duck;Green Duck'”。(以英文分号 间隔。)

8、添加 Slider Control。 更改其 Auto Ticks 和 Tick Marks 的值为 True,接着给控件添加整型变量 m_slider_int,将 在编辑框中显示它的值。添加编辑框(Edit Control)控件,给它添加字符串型变量 m_edit_str2, 然后给该控件添加事件函数,选择 NM_CUSTOMDRAW(当用户拖动滚动条时,该函数响应), 函数名默认,给该函数添加相应代码,见 Figure 17。 Figure 16 Figure 17 9、添加 Combo Box 控件 添加完毕后,更改其 Data 属性的值为“Red Duck;Black Duck;Green Duck”。(以英文分号 间隔。)

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共22页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有