第03章 windows通用控件,VC++ 2010应用开发技术_原书配套PPT_第1页
第03章 windows通用控件,VC++ 2010应用开发技术_原书配套PPT_第2页
第03章 windows通用控件,VC++ 2010应用开发技术_原书配套PPT_第3页
第03章 windows通用控件,VC++ 2010应用开发技术_原书配套PPT_第4页
第03章 windows通用控件,VC++ 2010应用开发技术_原书配套PPT_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

1、 图图3-1 密码输入对话框密码输入对话框图3-2 输入用户信息对话框图3-3 显示用户输入信息对话框表3-1 IDD_DIALOG1对话框中的控件ID及风格控件标题控件类型ID号风格请输入密码静态文本控件IDC_STATIC默认Client edge无编辑控件IDC_PASSWORD默认PasswordBOOL CS3_1APP:InitInstance() Enable3dControlsStatic(); #endif BOOL ok=FALSE; CPassword pas; while(!ok) if(pas.DoModal()=IDOK) if(pas.m_password=”ha

2、ppy”) ok=TRUE; else AfxMessageBox(“密码错误,密码错误,请重新输入!请重新输入!”); ok=FLASE; else return FALSE; CS3_1Dlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); 控件标题控件类型ID号风格姓名静态文本控件IDC_STATIC默认+ClientEdge+CenterImage无编辑控件IDC_NAME默认年龄静态文本控件IDC_STATIC默认+ClientEdge+CenterImage无编辑控件IDC_AGE默认无微调按钮 IDC_SPIN

3、1默认性别静态文本控件IDC_STATIC默认+ClientEdge+CenterImage男士单选按钮IDC_MALE默认女士单选按钮IDC_FEMALE默认生日静态文本控件IDC_STATIC 默认+ClientEdge+CenterImage无日期控件IDC_DATE默认职业静态文本控件IDC_STATIC默认+ClientEdge+CenterImage无组合框IDC_CAREER默认用列表框显示复选按钮IDC_CHECK默认显示信息 按钮IDC_SHOW默认+Flat输入信息分组框IDC_GROUP1默认无图像控件IDC_STATIC默认+Icon无滑动块IDC_SPLIDER1默认

4、无滚动条IDC_SCR默认表3-2 IDD_S3_1_DIALOG对话框中的控件ID及风格表3-3 为控件添加成员变量控件ID数据类型成员变量IDC_NAMECEditm_nameIDC_AGECEditm_ageIDC_CAREERCComboBoxm_careerIDC_CHECKCButtonm_checkIDC_DATECDateTimeCtrlm_dateIDC_SCRCScrollBarm_scrIDC_SLIDER1CSliderCtrlm_sliderIDC_SPIN1CSpinButtonCtrlm_spin表3-4 为控件添加消息响应函数控件ID通知消息消息响应函数IDC_

5、FEMALEBN_CLICKEDOnFemale()IDC_MALEBN_CLICKEDOnMale()IDC_CHECKBN_CLICKED OnCheck()IDC_SHOWBN_CLICKEDOnShow()IDC_CAREERCBN_SELCHANGEOnSelchangeCareer()图3-4 为组合框添加数据CS3_1Dlg:CS3_1Dlg(CWnd* pParent/*=NULL*/):CDialog(CS3_1Dlg:IDD,pParent)m_hIcon=AfxGetApp()-LoadIcon(IDR_MAINFRAME); m_male=”男士男士”;m_use=FA

6、LSE; / 单选按钮单选按钮IDC_MALE;void CS3_1Dlg:OnMale() m_male=”男士男士”;/ 对单选按钮对单选按钮IDC_FEMALE;void CS3_1Dlg:OnFemale() m_male=”女士女士”;/ 对复选按扭对复选按扭IDC_CHECK;void CS3_1Dlg:OnCheck() if(m_use) m_use=!m_use; m_check.SetCheck(0); else m_use=!m_use; m_check.SetCheck(1); void CS3_1Dlg:OnSelchangeCareer() int index=0;

7、 index=m_check.GetCurSel(); m_check.GetLBText(index,m_listitem);void CS3_1Dlg:OnShow() CString str; if(m_check.GetCheck() / 获取输入年龄的编辑控件的信息获取输入年龄的编辑控件的信息m_age.GetWindowText(str);/ 传递信息传递信息mdlg.m_age=str;/ 获取输入生日的日历控件的信息获取输入生日的日历控件的信息CTime time;m_date.GetTime(time);/ 传递信息传递信息mdlg.m_date=time;mdlg.m_ma

8、le=m_male;m_name.GetWindowText(str);mdlg.m_name=str;mdlg.m_career=m_listitem;/ 显示显示IDD_DIALOG2对话框对话框mdlg.DoModal(); elseAfxMessageBox(你还没有编写这一块的内容!你还没有编写这一块的内容!); BOOL CListDlg:OnInitDialog() CDialog:OnInitDialog(); / TODO: Add extra initialization here CString str; str=姓名姓名: +m_name; / 向列表框中添加选项向列表

9、框中添加选项 m_list.AddString(str); str=年龄年龄: +m_age;m_list.AddString(str); str=性别性别: +m_male; m_list.AddString(str); str=生日生日: +m_date.Format(%A,%B%d,%Y); m_list.AddString(str); str=职业职业: +m_career; m_list.AddString(str);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Pr

10、operty Pages should return FALSE 图3-5 消息提示框BOOL CS3_1Dlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu. / IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0 xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(

11、MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization hereCString str; m_slider.SetRa

12、ngeMin(1);m_slider.SetRangeMax(10);m_slider.SetLineSize(10);m_slider.SetPos(2); m_scr.SetScrollRange(1,20);m_scr.SetScrollPos(8,TRUE);m_spin.SetRange(1,100); return TRUE; / return TRUE unless you set the focus to a control 3.3 高级控件高级控件3.3.1 Progress控件控件3.3.2 Animate控件控件3.3.2 Animate控件控件3.3.3 Tab控件控件

13、3.3.3 Tab控件控件nItem:标签的索引值,基于:标签的索引值,基于0。ptabCtrlItem:指向:指向TCITEM结构的指针,结构的指针,TCITEM结构定义如下:结构定义如下: typedef struct tagTCITEM UINT mask;#if(_WIN32_IE=0 x0300)DWORD dwState;/ 指明选项的当前状态指明选项的当前状态DWORD dwStateMask; / 指明指明dwState的哪几位包含有效信息的哪几位包含有效信息#elseUINT lpReserved1;UINT lpReserved2;#endifLPTSTR pszText;

14、 / 标签字符串地址标签字符串地址int cchTextMax; / pszText指向的缓存区长指向的缓存区长度度int iImage; / 标签控件中图标签控件中图像的索引值像的索引值LPARAM lParam; / 传递的参数传递的参数 TCITEM, FAR* LPTCITEM;3.3.3 Tab控件控件3.4 高级控件的应用高级控件的应用图3-6 S3_2实例运行效果3.4.2 具体的实现步骤具体的实现步骤表3-5 添加的控件及属性控件ID号属性页面控件IDC_TAB1默认进度条控件IDC_PROGRESS1默认动画控件 IDC_ANIMATE1默认静态文本控件IDC_ST默认3.4

15、.2 具体的实现步骤具体的实现步骤BOOL CS3_2Dlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu. / IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0 xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, s

16、trAboutMenu);3.4.2 具体的实现步骤具体的实现步骤/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon / TODO: Add extra initialization herem_progress.SetRange(0,10);m_prog

17、ress.SetStep(1);m_progress.SetPos(0);m_tab.InsertItem(0,演示演示);m_tab.InsertItem(1,说明说明);GetDlgItem(IDC_STA)-ShowWindow(FALSE);m_animate.Open(FILECOPY.AVI);SetTimer(1,1000,NULL); return TRUE; / return TRUE unless you set the focus to a control3.4.2 具体的实现步骤具体的实现步骤void CS3_2Dlg:OnSelchangeTab1(NMHDR* pN

18、MHDR, LRESULT* pResult) / TODO: Add your control notification handler code hereif(m_tab.GetCurSel()=0) / 使静态文本窗口隐藏使静态文本窗口隐藏 GetDlgItem(IDC_STA)-ShowWindow(FALSE); / 显示动画控件显示动画控件GetDlgItem(IDC_ANIMATE1)-ShowWindow(TRUE);/ 显示进度条控件显示进度条控件GetDlgItem(IDC_PROGRESS1)-ShowWindow(TRUE);if(m_tab.GetCurSel()=1

19、)GetDlgItem(IDC_STA)-ShowWindow(TRUE);GetDlgItem(IDC_ANIMATE1)-ShowWindow(FALSE);GetDlgItem(IDC_PROGRESS1)-ShowWindow(FALSE);*pResult = 0;void CS3_2Dlg:OnTimer(UINT nIDEvent) / TODO: Add your message handler code here and/or call default for(int i=0;iSetWizardButtons(PSWIZB_NEXT); / 设置按钮为类型。设置按钮为类型。

20、 Return CPropertyPage:OnSetActive(); 3.6 制作一个安装向导制作一个安装向导图3-7 向导对话框示例3.6.2 具体实现步骤具体实现步骤序号属性属性值1Caption产品信息2StyleChild3BorderThin4Title BarTrue5IDIDD_PROPPAGE1表3-6 向导对话框的属性设置图3-8 输入产品序列号对话框。3.6.2 具体实现步骤具体实现步骤3.6.2 具体实现步骤具体实现步骤图3-9 选择安装路径对话框3.6.2 具体实现步骤具体实现步骤图3-10 安装过程对话框#include “MyWizardPage1.h”CMyW

21、izardPage1 m_Page1;CMyWizardPage2 m_Page2;CMyWizardPage3 m_Page3;CMyWizardPage4 m_Page4;CMyWizardSheet* m_sheet; / 全局指针定义全局指针定义3.6.2 具体实现步骤具体实现步骤void CS3_3Dlg:StartWizard()m_sheet=new CMyWizardSheet(我的向导我的向导); / 动态分配空间,初始化指针动态分配空间,初始化指针if(m_sheet-DoModal()=IDCANCEL) / 如果点了取消按钮如果点了取消按钮 PostQuitMessag

22、e(0); / 退出程序。退出程序。delete m_sheet; / 释放空间。释放空间。BOOL CS3_3Dlg:OnInitDialog() / TODO: Add extra initialization hereStartWizard(); return TRUE; / return TRUE unless you set the focus to a control3.6.2 具体实现步骤具体实现步骤#include MyWizardSheet.hextern CMyWizardSheet *m_sheet; / 全局变量声明全局变量声明int j;/ 记录进度条位置记录进度条位

23、置BOOL CMyWizardPage1:OnInitDialog() CPropertyPage:OnInitDialog();/ TODO: Add extra initialization here/ 第一页只有第一页只有“下一个下一个”(Next)按钮按钮m_sheet-SetWizardButtons(PSWIZB_NEXT); return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE3.6.2 具体实现步骤具

24、体实现步骤LRESULT CMyWizardPage1:OnWizardNext() / TODO: Add your specialized code here and/or call the base class/ Page2-4用这种模式的按钮组合用这种模式的按钮组合m_sheet-SetWizardButtons(PSWIZB_BACK+PSWIZB_NEXT); return CPropertyPage:OnWizardNext(); 3.6.2 具体实现步骤具体实现步骤 LRESULT CMyWizardPage2:OnWizardNext() / TODO: Add your s

25、pecialized code here and/or call the base class UpdateData(TRUE); / 将控件中的值传递给变量将控件中的值传递给变量 if(m_num=11110000) AfxMessageBox(L恭喜你,你输对了!恭喜你,你输对了!);m_sheet-SetWizardButtons(PSWIZB_BACK+PSWIZB_NEXT); elseAfxMessageBox(L你输入的产品号不对,请返回上一步再试一次!你输入的产品号不对,请返回上一步再试一次!);m_sheet-SetWizardButtons(PSWIZB_BACK); re

26、turn CPropertyPage:OnWizardNext();3.6.2 具体实现步骤具体实现步骤LRESULT CMyWizardPage2:OnWizardBack() / TODO: Add your specialized code here and/or call the base class m_sheet-SetWizardButtons(PSWIZB_NEXT); return CPropertyPage:OnWizardBack();3.6.2 具体实现步骤具体实现步骤void CMyWizardPage3:OnButton1() / TODO: Add your co

27、ntrol notification handler code here CString filepath;CFileDialog dlg(TRUE); if(dlg.DoModal()=IDOK)/ 得到路径得到路径filepath=dlg.GetPathName();/ 使编辑框显示安装路径使编辑框显示安装路径m_path=filepath;/ 把变量的值传递给控件,显示数值。把变量的值传递给控件,显示数值。UpdateData(FALSE);3.6.2 具体实现步骤具体实现步骤LRESULT CMyWizardPage3:OnWizardNext() / TODO: Add your s

28、pecialized code here and/or call the base class m_sheet-SetWizardButtons(PSWIZB_BACK+PSWIZB_DISABLEDFINISH); return CPropertyPage:OnWizardNext();LRESULT CMyWizardPage3:OnWizardBack() / TODO: Add your specialized code here and/or call the base class m_sheet-SetWizardButtons(PSWIZB_BACK+PSWIZB_NEXT); return CPropertyPage:OnWizardBack();3.6.2 具体实现步骤具体实现步骤void CMyWizar

温馨提示

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

评论

0/150

提交评论