vc层叠式窗体控件指南
2007-10-04 20:11:34 来源:WEB开发网核心提示:让我们在该控件上开始工作,创建一个用CStatic作为基类的新的MFC类命名为CStackedWndCtrl,vc层叠式窗体控件指南(2),在资源编辑器中,添加一个图片控件ID号为IDC_SWC,用一个数组是一个方便的且足够的方法,记住为了使用这个数组模版,保留Type的值为缺省的Frame并将Color置为Black
让我们在该控件上开始工作。创建一个用CStatic作为基类的新的MFC类命名为CStackedWndCtrl。
在资源编辑器中,添加一个图片控件ID号为IDC_SWC。保留Type的值为缺省的Frame并将Color置为Black。
使用MFC ClassWizard添加一个数据变量到IDC_SWC命名为m_StackedWndCtrl,确保选择了Control作为Category以及CStackedWndCtrl作为变量类型。
在OK上点击,弹出一个消息框提示我们确保我们已经为类CStackedWndCtrl包含头文件在我们的对话框代码中。如果你没有包含它现在就要做了。
数据结构
任何控件的主要部分就是一个数据结构,数据结构可以保持将要显示的信息。
好的,什么将会被显示?该控件用面板制作出来,每个面板包含两个窗体,一个标题窗体和一个内容窗体。下面的图片说明了这个概念。
控件的机制要求只有一个面板的内容窗体在一个时间内显示。在一个面板上点击标题窗体将触发其相应的内容窗体显示,并且也隐藏了当前显示面板的内容窗体。
因此,数据结构将包含一对指向CWnd 对象的指针和一个布尔标识值以指出是否显示或隐藏这个面板的内容窗体。不需要任何其他的东西了。
#include <afxtempl.h>
class CStackedWndCtrl : public CStatic
{
....
....
// Attributes
protected:
typedef struct
{
CWnd* m_pwndRubric;
CWnd* m_pwndContent;
BOOL m_bOpen;
} TDS_PANE, *PTDS_PANE;
CArray<PTDS_PANE, PTDS_PANE> m_arrPanes;
....
....
}
对于这些结构的保存、检索和操作,用一个数组是一个方便的且足够的方法。记住为了使用这个数组模版,我们需要包含相应的头文件。更多精彩
赞助商链接