MFC中利用树形控件在主对话框当中嵌入子对话框_第1页
MFC中利用树形控件在主对话框当中嵌入子对话框_第2页
MFC中利用树形控件在主对话框当中嵌入子对话框_第3页
MFC中利用树形控件在主对话框当中嵌入子对话框_第4页
MFC中利用树形控件在主对话框当中嵌入子对话框_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

这里首先声明,在此使用的是VC6.0编译器。下面直接讲述步骤,关于原理性的东西请大家看书。(1)新建一个基于对话框的MFC应用程序,程序名取为test(2)拖入一个树形控件(TreeControl)和一个picture控件,tear并把两者的ID名称更改为ID_Tree_Sel和ID_STATIC_BTNAREA,并在属性中把前者的Styles更改如下

TreeCotLirolFroperties®TGeneralStylesjMoreStyles|ExtendedStylesHasbuttonsr~EdiilabetsShowselectionaiu/aysaHaslin令sDisabledra^drop▽Linesatroot。Border把后者的Notify属性打上勾(3)按ctrl+W打开ClassWizard,在MemberVariables中为ID_Tree_Sel添加变量m_tree,为ID_STATIC_BTNAREA添加变量m_area(这个变量这里没有用到,可以不添加)略ClL!3lil=lEd[T]贸MessageMup?WemtitrFVarisb[esI|ActiveXEvents|ClassInfo|Erojccr;Qgsname:AddlC]aaB..^〜test*■CTeelDIq=§CoiklrulFvpeMemberAddfirlctt:VariatilrIDCSTArtC0T+UREACSIb^emaiibaUpdslBCuluiinicE?hidAlliDC_TREE_SEL1DCANCELIDOKCTra-fiCWlm_lrecDcsoripiriofi:m»pIoCStalkmemlb^rOKCancc-I⑷新建两个对话框,ID分别为ID_DIALOG1和ID_DIALOG2,并均按下图更改属性Style为child和Border为None。然后在这两个子对话框上分别添加一行文字^ThisisDialog1”和”ThisisDialog2”ThisisDialog1(5)在子对话框1上单击右键,进入classwizard,会弹出一个如下图的AddingaClass对话框问你是否建立一个类,选择Createanewclass,然后点击OK,在随后出现的对话框中Name:中输入CDlg1,点击OKIEIErojed:Wffbit™Variableill:(dinnil!CdaItdEIDs'IDC^STATC旧tDCANCELIDOh;Cancel同样,为第二个子对话框建立一个CDlg2的类(6)进入testDlg.h文件中,在文件开头加入以下代码#include"Dlg1.h"#include"Dlg2.h"然后新增两个protected类型的变量m_Dlg1和m_Dlg2CDlg1m_Dlg1;CDlg2m_Dlg2;转入testDlg.cpp文件中,在OnInitDialog()中加入以下代码BOOLCTestDlg::OnInitDialog(){CDialog::OnInitDialog();//Add"About..."menuitemtosystemmenu.//IDM_ABOUTBOXmustbeinthesystemcommandrange.ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX<0xF000);CMenu*pSysMenu=GetSystemMenu(FALSE);if(pSysMenu!=NULL){CStringstrAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if(!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);IDM_ABOUTBOX,pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);}}//Settheiconforthisdialog.Theframeworkdoesthisautomatically//whentheapplication'smainwindowisnotadialogSetIcon(m_hIcon,TRUE);//SetbigiconSetIcon(m_hIcon,FALSE);//Setsmallicon//TODO:Addextrainitializationherem_tree.DeleteAllItems();m_tree.InsertItem("对话框1");m_tree.InsertItem("对话框2");m_Dlg1.Create(IDD_DIALOG1,this);m_Dlg2.Create(IDD_DIALOG2,this);//根据获得主对话框上图片控件的尺寸,将子对话框嵌入到主对话框中CRectr;GetDlgItem(IDC_STATIC_BTNAREA)->GetWindowRect(r);ScreenToClient(r);GetDlgItem(IDC_STATIC_BTNAREA)->DestroyWindow();/这里可以把图形控件销毁了,否则子对话框将不会响应你的鼠标消息*///定位属性页m_Dlg1.MoveWindow(r);m_Dlg2.MoveWindow(r);//根据所要显示的控件进行对话框的消隐工作m_Dlg1.ShowWindow(SW_HIDE);//显示第一个子对话框m_Dlg2.ShowWindow(SW_HIDE);returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}(7)进入ClassWizard,接下来我们需要为m_tree添加事件响应代码■it.ClaMessageMaps函肥ct:ahfecEID«i:^TeitDiyl&C_STATC_BTMARFAIDCrRLLSELHOCANCELIDOKprTir^Mi-■:L^iiori'tbvimJVM[rTgf;SPAJWED■it.ClaMessageMaps函肥ct:ahfecEID«i:^TeitDiyl&C_STATC_BTMARFAIDCrRLLSELHOCANCELIDOKprTir^Mi-■:L^iiori'tbvimJVM[rTgf;SPAJWEDTVMrTEhfEXPAhTDINGIVN.KEYOOWHWMSELCHANCEDtvm"sei.changing1VMSErDlSPlNFOMembertunEUonv;VDaDntsLxchongcW加1响。间凹WOmPaintWOnOueiy{)ragIconWOFiSjf^iCnmiiiendOMWMJNITDIALfliGONWMPRINTon^wmIquervdragicon」ONWMSVSCGMMAMDDtiSErjpliaii:InrlieMe^thnllheQ^leelionchangcdImmone-ItE-nnIdanalherAddFiindion...EdElCodeNM_TREEVIEW*pNMTreeView=(NM_TREEVIEW*)pNMHDR;TVITEMitem0=pNMTreeView->itemNew;CStringstr=m_tree.GetItemText(item0.hItem);if(str.Compare(_T('对话框1"))==0){m_Dlg1.ShowWindow(SW_SHOW);//显示第一个子对话框m_Dlg2.ShowWindow(SW_HIDE);//l藏第二个子对话框}else{m_Dlg1.ShowWindow(SW_HIDE);//l藏第一个子对话框m_Dlg2.ShowWindow(

温馨提示

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

评论

0/150

提交评论