软件框架的利器、TangramMini组件应用教程四:基本应用
2007-08-26 15:28
381 查看
软件框架的利器、TangramMini组件应用教程四:基本应用
作者:骆归
下载源代码
上篇中我介绍了SetCaption以及SetAction两个方法,在这一篇中我将做一些基本的应用。
在前面我已经将对话框安装了List Control、Tree Control和Edit Box三个控件,现在我计划在左边的Tree Control中插入几个节点,然后点击节点后在Edit Box里显示一些信息,而在List Control中并不显示信息,但是选择Tree Control中的不同的节点后在此区域(第一篇中的1号区域)显示一些其它窗口。
我计划给Tree Control插入三个节点,一个根节点(ListView),两个子节点(ChildWindow1、ChildWindow2)。选择ListView节点就在1号区域显示List Control,选择子节点ChildWindow1与ChildWindow2分别在1号区域显示一个不同的窗体。我们先加入两个窗体,这里我加入两个对话框对象,对应生成CMyDialog1与CMyDialog2两个类。
注:加入对话框窗体的步骤如下:
进入菜单Insert ->New Form项,弹出New From对话框;
在New Class对话框中,在Name中输入CMyDialog1,在Base class中选择CDialog;
在Dialog ID中我们可以自定义ID,这里我们不做修改,其余项不做修必,最后单击OK完成退出;
修改添加的对话框(ID:IDD_MYDIALOG1_DIALOG)属性,将Style选择为Child,Border选择为None;
重复步骤上面1至4完成CMyDialog2的添加;
为了区分两个对话框的不同界面,我在上面分别放入了一个Static Text,以做区分;
对话框加入后,我们就可以创建两个对话框实例,在CTutorial1Dlg类中分别添加类型为CMyDialog1*与CMyDialog2*的两个变量m_pMyDialog1、m_pMyDialog2;在OnInitDialog函数体中分别对应给两个变量分配空间(New),并创建实例(Create),代码如下:
接下来我们加入处理Tree Control对象的TVN_SELCHANGED的消息。打开主对话框源码,选择Tree Control控件并右击鼠标,在弹出的快捷菜单中选择“Events…”菜单项,从左边例表中选择TVN_SELCHANGED,单击“Add and Edit”按钮,处理函数名为OnSelchangedTree1,Microsoft Visual C++自动跳转到OnSelchangedTree1函数体中,编写代码,最终如下:
其中strItemText中保存了用户选择Tree Control节点的标题,根据节点标题分别对应调用SetWnd(…)方法安装窗体对象。并且在Edit box显示用户选择的节点。
经过上面有限的几个步骤之后,运行的结果如下面三图所示:
上面三个图中,第一个图是选择Tree Control控件中的根节点ListView的效果;第二个图是选择ChildWindow1节点的效果;第三个图是选择ChildWindow2节点的效果。可以看出,可以重复对一个Tangram空白视图区(本例子中的Page1_S0001_S0000)调用SetWnd(…)方法安装多个窗口对象。
好了,这一篇就简单的写到这里,到此,关于TangramMini组件在对话框中的应用也全部结束,下一篇我将介绍关于TangramMini组件在SDI(单文档界面)中的基本应用。
作者:骆归
下载源代码
上篇中我介绍了SetCaption以及SetAction两个方法,在这一篇中我将做一些基本的应用。
在前面我已经将对话框安装了List Control、Tree Control和Edit Box三个控件,现在我计划在左边的Tree Control中插入几个节点,然后点击节点后在Edit Box里显示一些信息,而在List Control中并不显示信息,但是选择Tree Control中的不同的节点后在此区域(第一篇中的1号区域)显示一些其它窗口。
我计划给Tree Control插入三个节点,一个根节点(ListView),两个子节点(ChildWindow1、ChildWindow2)。选择ListView节点就在1号区域显示List Control,选择子节点ChildWindow1与ChildWindow2分别在1号区域显示一个不同的窗体。我们先加入两个窗体,这里我加入两个对话框对象,对应生成CMyDialog1与CMyDialog2两个类。
注:加入对话框窗体的步骤如下:
进入菜单Insert ->New Form项,弹出New From对话框;
在New Class对话框中,在Name中输入CMyDialog1,在Base class中选择CDialog;
在Dialog ID中我们可以自定义ID,这里我们不做修改,其余项不做修必,最后单击OK完成退出;
修改添加的对话框(ID:IDD_MYDIALOG1_DIALOG)属性,将Style选择为Child,Border选择为None;
重复步骤上面1至4完成CMyDialog2的添加;
为了区分两个对话框的不同界面,我在上面分别放入了一个Static Text,以做区分;
对话框加入后,我们就可以创建两个对话框实例,在CTutorial1Dlg类中分别添加类型为CMyDialog1*与CMyDialog2*的两个变量m_pMyDialog1、m_pMyDialog2;在OnInitDialog函数体中分别对应给两个变量分配空间(New),并创建实例(Create),代码如下:
m_pMyDialog1 = new CMyDialog1(this); m_pMyDialog2 = new CMyDialog2(this); m_pMyDialog1->Create(IDD_MYDIALOG1_DIALOG,this); m_pMyDialog2->Create(IDD_MYDIALOG2_DIALOG,this);
接下来我们加入处理Tree Control对象的TVN_SELCHANGED的消息。打开主对话框源码,选择Tree Control控件并右击鼠标,在弹出的快捷菜单中选择“Events…”菜单项,从左边例表中选择TVN_SELCHANGED,单击“Add and Edit”按钮,处理函数名为OnSelchangedTree1,Microsoft Visual C++自动跳转到OnSelchangedTree1函数体中,编写代码,最终如下:
void CTutorial1Dlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; // TODO: Add your control notification handler code here *pResult = 0; HTREEITEM hItem = pNMTreeView->itemNew.hItem; if (hItem == NULL) return; CString strItemText = m_wndTree.GetItemText(hItem); m_wndEdit.SetWindowText(_T("selected: /"") + strItemText + _T("/"")); if (strItemText.CompareNoCase(_T("ListView")) == 0) { m_wndMiniCtrl.SetWnd(_T("Page1_S0001_S0000"), (long)m_wndList.GetSafeHwnd()); } else if (strItemText.CompareNoCase(_T("ChildWindow1")) == 0) { m_wndMiniCtrl.SetWnd(_T("Page1_S0001_S0000"), (long)m_pMyDialog1->GetSafeHwnd()); } else { m_wndMiniCtrl.SetWnd(_T("Page1_S0001_S0000"), (long)m_pMyDialog2->GetSafeHwnd()); } }
其中strItemText中保存了用户选择Tree Control节点的标题,根据节点标题分别对应调用SetWnd(…)方法安装窗体对象。并且在Edit box显示用户选择的节点。
经过上面有限的几个步骤之后,运行的结果如下面三图所示:
上面三个图中,第一个图是选择Tree Control控件中的根节点ListView的效果;第二个图是选择ChildWindow1节点的效果;第三个图是选择ChildWindow2节点的效果。可以看出,可以重复对一个Tangram空白视图区(本例子中的Page1_S0001_S0000)调用SetWnd(…)方法安装多个窗口对象。
好了,这一篇就简单的写到这里,到此,关于TangramMini组件在对话框中的应用也全部结束,下一篇我将介绍关于TangramMini组件在SDI(单文档界面)中的基本应用。
相关文章推荐
- 软件框架的利器、TangramMini组件应用教程三:基本使用
- 软件框架的利器、TangramMini组件应用教程二:安装对象
- 软件框架的利器、TangramMini组件应用教程一:入门
- 软件系统开发中的组件框架技术研究、设计和应用【转自lrn资源网】
- 软件系统开发中的组件框架技术研究、设计和应用[转]
- 软件系统开发中的组件框架技术研究、设计和应用
- 软件系统开发中的组件框架技术研究、设计和应用
- 软件系统开发中的组件框架技术研究、设计和应用
- Yii框架官方教程增补篇6——基础知识:应用、组件、配置、生命周期
- 软件系统开发中的组件框架技术研究、设计和应用
- 软件系统开发中的组件框架技术研究、设计和应用【转】
- 深度学习框架TensorFlow学习与应用(一)——基本概念与简单示例
- Linux上iptables防火墙的基本应用教程
- 《开源框架那点事儿13》:基于开源框架做应用是未来中小型软件公司的发展趋势
- DNS基本介绍及应用软件bind9编译安装
- 集合框架一:Collection基本应用(入门)
- 集合框架二:List基本应用:增删改查
- Linux上iptables防火墙的基本应用教程
- 轮播图系列教程(五),左右切换,运动框架应用——和派孔明
- Unit07: MyBatis框架简介 、 MyBatis基本应用