VisualC6.0实例教程电子教案-第3章.ppt_第1页
VisualC6.0实例教程电子教案-第3章.ppt_第2页
VisualC6.0实例教程电子教案-第3章.ppt_第3页
VisualC6.0实例教程电子教案-第3章.ppt_第4页
VisualC6.0实例教程电子教案-第3章.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章对话框与控件 内容摘要 1 使用对话框与控件2 模态对话框3 非模态对话框4 进度条对话框5 属性页对话框6 使用通用对话框 返回目录 3 1使用对话框与控件 3 1 程序的实现步骤利用AppWizard生成多文档程序 Dialog 编辑口令对话框资源添加控件关联变量添加代码 返回第3章 步骤1生成程序框架 Dialog 项目名称 Dialog选择多文档界面应用程序 Multipledocument 3 1 步骤2编辑口令对话框资源 添加控件 IDC STATICStaticTextCaption 请输入口令IDC STATICStaticTextCaption 口令为一个0 9999之间的整数Clientedge Staticedge和Modalframe选中IDC PASSWORD EDITEditBoxPassword 选中IDOKButtonCaption 确定IDCANCELButtonCaption 取消 3 1 ID IDD PASSWORD DIALOGCaption 口令 Class CPasswordDialog 步骤3添加控件关联变量 3 1 IDC PASSWORD EDITintm PasswordMinimumValue 0MaximumValue 9999 步骤4显示对话框 在文件Dialog cpp的头部 加入下面的包含语句 include PasswordDialog h 步骤4显示对话框 3 1 BOOLCDialogApp InitInstance CPasswordDialogcDlg 声明CPasswordDialog类的一个对象if cDlg DoModal IDOK 用户按了确定按钮 if cDlg m Password 1925 口令为整数1925 如果口令不对 则显示出错信息 然后程序结束AfxMessageBox 口令错误 确定后将退出程序 returnFALSE else 如果按下取消按钮 程序也结束returnFALSE returnTRUE 3 2模态对话框 3 2 概念模态对话框弹出后 独占了系统资源 只有在关闭该对话框后才可能继续执行程序的其他代码 不能够在关闭对话框之前执行应用程序其他部分的代码 模态对话框一般要求用户做出某种选择 如前面例程中的口令对话框将一直出现并等待用户输入口令 返回第3章 程序的实现步骤 3 2 在上一节程序的基础上添加菜单资源和菜单响应函数编辑对话框资源和创建对话框类添加消息响应函数和代码 步骤1添加菜单资源和菜单响应函数 在 查看 V 菜单中添加以下菜单项SeparatorID VIEW MODALDIALOG模态对话框 M ID VIEW MODALLESSDIALOG非模态对话框 E ID VIEW PROGRESSDIALOG进度条对话框 R ID VIEW PROPERTIES属性页对话框 P ID VIEW COMMONDIALOG通用对话框 C 3 2 步骤2编辑对话框资源 IDC SEX1RadioButtonCaption 男Group 选中IDC SEX2RadioButtonCaption 女IDC INSTEREST1CheckBoxCaption 登山Group 选中IDC INSTEREST2CheckBoxCaption 游泳IDC INSTEREST3CheckBoxCaption 看书IDC INSTEREST4CheckBoxCaption 玩游戏IDC COMBOComboBoxIDC EDITEditBox 3 2 ID IDD MODAL DIALOGCaption ModalDialog Class CDialogModal添加控件 步骤3添加控件关联变量 3 2 IDC COMBOCComboBoxm Combo IDC SEX1CButtonm Radio IDC EDITCStringm Edit 步骤4显示对话框 1 菜单响应函数 voidCDialogView OnViewModaldialog CDialogModalm Dlg m Dlg DoModal 3 2 2 对话框响应函数 BOOLCDialogModal OnInitDialog CDialog OnInitDialog TODO Addextrainitializationherem Radio SetCheck 1 把 男 设置为默认值m Combo InsertString 0 小学 往ComboBox加入选项m Combo InsertString 1 初中 m Combo InsertString 2 高中 m Combo InsertString 3 大学 m Combo InsertString 4 本科以上 m Combo SetCurSel 0 把 小学 设置为默认值returnTRUE returnTRUEunlessyousetthefocustoacontrol EXCEPTION OCXPropertyPagesshouldreturnFALSE voidCDialogModal OnOk TODO AddyourcontrolnotificationhandlercodehereCStringstr str Empty if m Radio GetCheck str 先生 elsestr 小姐 str 你好 你的爱好 BOOLflag 0 CButton p 得到指向IDC INSTEREST1的指针p CButton GetDlgItem IDC INSTEREST1 if p GetCheck 判断 登山 是否被选中 str 登山 flag 1 得到指向IDC INSTEREST2的指针p CButton GetDlgItem IDC INSTEREST2 if p GetCheck 判断 游泳 是否被选中 str 游泳 flag 1 得到指向IDC INSTEREST3的指针p CButton GetDlgItem IDC INSTEREST3 if p GetCheck 判断 看书 是否被选中 str 看书 flag 1 得到指向IDC INSTEREST4的指针p CButton GetDlgItem IDC INSTEREST4 if p GetCheck 判断 玩游戏 是否被选中 str 玩游戏 flag 1 if flag str 不知道 str 学历 intnumber CStringtemp number m Combo GetCurSel 得到当前被选中项的序号m Combo GetLBText number temp 得到序号为number的项的內容str temp m Edit str UpdateData false 更新文本框中的内容 3 2 3 3非模态对话框 3 3 概念非模态对话框弹出后 程序可以在不关闭该对话框的情况下继续执行 在转入到应用程序其他部分的代码时可以不需要用户做出响应 非模态对话框一般用来显示信息 或者实时地进行一些设置 返回第3章 程序的实现步骤 3 2 在上一节程序的基础上编辑对话框资源和创建对话框类显示非模态对话框实现对话框的功能 步骤1编辑对话框资源 3 3 ID IDD MODALLESS DIALOGCaption ModallessDialog Class CDialogModalless添加控件 步骤2显示非模态对话框 3 3 1 在视类中添加对话框成员指针 并包含对话框头文件public CDialogModalless m pModallessDlg 并包含对话框头文件 include DialogModalless h 2 添加消息响应函数 3 3 voidCDialogView OnViewModallessdialog TODO Addyourcommandhandlercodehere 如果指针指向NULL 说明对话框还没有创建 则动态创建if m pModallessDlg NULL m pModallessDlg newCDialogModalless m pModallessDlg Create IDD MODALLESS DIALOG this 显示非模态对话框m pModallessDlg ShowWindow SW SHOW 3 3 CDialogView CDialogView TODO addconstructioncodeherem pModallessDlg NULL 初始化指针 CDialogView CDialogView if m pModallessDlg NULL deletem pModallessDlg 释放空间 3 修改视类的构造函数和析构函数 步骤3实现对话框的功能 3 3 1 添加控件关联变量控件变量类型变量名IDC LISTCListCtrlm ListIDC TreeCTeeCtrlm Tree 2 添加消息响应函数 BOOLCDialogModalless OnInitDialog CDialog OnInitDialog TODO Addextrainitializationhere 往List控件中插入一列m List InsertColumn 0 文件名 LVCFMT LEFT 150 1 TV INSERTSTRUCTTreeItem HTREEITEMhTreeItem TreeItem hInsertAfter TVI LAST TreeItem item mask TVIF TEXT TVIF PARAM 第一级CStringstr D TreeItem hParent TVI ROOT 父级为根部TreeItem item pszText str GetBuffer 50 设置字符缓冲区的大小并赋值TreeItem item lParam 1 对于根目录 设置为1hTreeItem m Tree InsertItem returnTRUEunlessyousetthefocustoacontrol EXCEPTION OCXPropertyPagesshouldreturnFALSE 3 3 voidCDialogModalless OnSelchangedTree NMHDR pNMHDR LRESULT pResult NM TREEVIEW pNMTreeView NM TREEVIEW pNMHDR TODO AddyourcontrolnotificationhandlercodehereCStringtemp str 获取当前被选择的treeview项HTREEITEMCurItem m Tree GetSelectedItem TV ITEMTreeItem TreeItem hItem CurItem m Tree GetItem 3 3 3 4进度条对话框 3 4 程序的实现步骤在上一节程序的基础上编辑对话框资源和创建对话框类显示进度条对话框实现对话框的功能 返回第3章 步骤1编辑对话框资源 3 4 ID IDD PROGRESS DIALOGCaption ProgressDialog Class CDialogProgress添加控件 步骤2显示进度条对话框 3 4 1 在视类中包含对话框头文件 include DialogProgress h 2 添加消息响应函数 voidCDialogView OnViewProgressdialog TODO AddyourcommandhandlercodehereCDialogProgressdlg dlg DoModal 步骤3实现对话框的功能 3 4 1 添加控件关联变量控件变量类型变量名IDC PERCENT SPINCSpinButtonCtrlm SpinIDC PROGRESSCProgressCtrlm ProgreesIDC TIME SLIDERCSliderCtrlm Time 2 添加消息响应函数 BOOLCDialogProgress OnInitDialog CDialog OnInitDialog TODO Addextrainitializationherem Spin SetRange 1 50 给Spin控件设置数值范围 把文本框的初始值设为1GetDlgItem IDC EDIT SetWindowText 1 m Time SetRange 0 10 设置滑动的数值范围m Time SetPos 1 设滑动控件的初始值设为1m Progress SetRange 0 100 设进度条的数值范围returnTRUE returnTRUEunlessyousetthefocustoacontrol EXCEPTION OCXPropertyPagesshouldreturnFALSE 3 4 voidCDialogProgress OnProgressButton TODO AddyourcontrolnotificationhandlercodehereCStringtemp GetDlgItem IDC EDIT GetWindowText temp 得到文本框中的内容intpercent atoi temp if percent50 判断文本框中的内容是否在设定的范围之内 MessageBox 输入的数据超出范围 Waring MB ICONWARNING MB OK GetDlgItem IDC EDIT SetFocus 把焦点设在文本框上return 中断程序的运行 返回 intnPercent nTime nCurPos 0 nPercent m Spin GetPos 得到Spin控件的值nTime m Time GetPos 得到滑动条上当前的值m Progress SetPos 0 设置进度条当前的位置为0while nCurPos nPercent 100 m Progress OffsetPos nPercent 在进度条上偏移nPercent位置Sleep 1000 nTime 10 延迟一定的时间间隔 m Progress SetPos 100 设置进度条当前的位置为100 3 4 3 5属性页对话框 3 5 概念属性页对话框将多个对话框集中起来 通过标签或按钮来激活各个页面 主要分为一般属性页对话框和向导对话框两类 在一般属性页对话框中 页面的切换通过点击不同的标签实现 在向导对话框中 页面的选择是通过点击 上一页 Back 下一页 Next 完成 Finish 和 取消 Cance 等按钮实现的 返回第3章 程序的实现步骤 3 5 在上一节程序的基础上编辑对话框资源和创建对话框类显示属性页对话框实现对话框的功能 步骤1编辑对话框资源 3 5 ID IDD TAB DIALOGCaption TabDialog Class CDialogTab添加控件 步骤2显示属性页对话框 3 5 1 在视类中包含对话框头文件 include DialogTab h 2 添加消息响应函数 voidCDialogView OnViewTab TODO AddyourcommandhandlercodehereCDialogTabdlg dlg DoModal 步骤3实现对话框的功能 3 5 1 添加控件关联变量控件变量类型变量名IDC SCROLLBARCScrollBarm ScrollBarIDC TABCTabCtrlm Tab 2 添加消息响应函数 BOOLCDialogTab OnInitDialog CDialog OnInitDialog TODO Addextrainitializationhere 对Tab控件进行初始化TC ITEM m pTCItem m pTCItem newTC ITEM m pTCItem mask TCIF TEXT 接收的值为文本m pTCItem pszText 学生守则 标签的名字m Tab InsertItem 0 m pTCItem 插入一个新的标签m pTCItem pszText 市民公约 m Tab InsertItem 1 m pTCItem 显示IDC STATIC1 IDC SCROLLBAR两个控件GetDlgItem IDC STATIC1 ShowWindow SW SHOW GetDlgItem IDC SCROLLBAR ShowWindow SW SHOW 隐藏IDC STATIC2控件GetDlgItem IDC STATIC2 ShowWindow SW HIDE 对滚动条进行初始化m ScrollBar SetScrollRange 1 10 设置滚动条的范围m ScrollBar SetScrollPos 1 设置当前滚动条的位置returnTRUE returnTRUEunlessyousetthefocustoacontrol EXCEPTION OCXPropertyPagesshouldreturnFALSE 3 5 voidCDialogTab OnSelchangeTab NMHDR pNMHDR LRESULT pResult TODO Addyourcontrolnotificationhandlercodehere 当前Tab控件所选中的标签if m Tab GetCurSel 0 显示IDC STATIC1 IDC SCROLLBAR两个控件GetDlgItem IDC STATIC1 ShowWindow SW SHOW GetDlgItem IDC SCROLLBAR ShowWindow SW SHOW 隐藏IDC STATIC2控件GetDlgItem IDC STATIC2 ShowWindow SW HIDE else 隐藏IDC STATIC1 IDC SCROLLBAR两个控件GetDlgItem IDC STATIC1 ShowWindow SW HIDE GetDlgItem IDC SCROLLBAR ShowWindow SW HIDE 显示IDC STATIC2控件GetDlgItem IDC STATIC2 ShowWindow SW SHOW pResult 0 3 5 voidCDialogTab OnVScroll UINTnSBCode UINTnPos CScrollBar pScrollBar TODO Addyourmessagehandlercodehereand orcalldefault 对滚动条进行重新定位switch nSBCode caseSB THUMBPOSITION 滚动的绝对位置 pScrollBar SetScrollPos nPos 设置滚动条的位置break caseSB LINEUP 单击滚动条的上箭头 把滚动条设置为当前位置减1的位置pScrollBar SetScrollPos pScrollBar GetScrollPos 1 break caseSB LINEDOWN 单击滚动条的下箭头 把滚动条设置为当前位置加1的位置pScrollBar SetScrollPos pScrollBar GetScrollPos 1 break caseSB PAGEUP 单击滚动条当前位置的上面 把滚动条设置为当前位置减5的位置pScrollBar SetScrollPos pScrollBar GetScrollPos 5 break caseSB PAGEDOWN 单击滚动条当前位置的下面 把滚动条设置为当前位置加5的位置pScrollBar SetScrollPos pScrollBar GetScrollPos

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论