内容摘要:本指南的目标读者为程序员新手,在开始之前,我想挑战你一下:即在不阅读本文的情况下先尝试自己开发这个控件。尽管这看起来可能会让人退缩或你可能不知道从哪里开始,它不是像你想像得那样难。
让我们在该控件上开始工作。创建一个用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;
....
....
}对于这些结构的保存、检索和操作,用一个数组是一个方便的且足够的方法。记住为了使用这个数组模版,我们需要包含相应的头文件。
作者:Franc Morales 责编:豆豆技术应用
正在加载评论...
- VC/VC++按钮设计专题
- VC/VC++ 菜单专题
- VC/VC++ 工具条专题
- VC/VC++ 对话框教程
- VC/VC++ 报表教程
- VC/VC++ 控件
- VC/VC++ GDI
- Visual Studio 2008
- VC/VC++ MFC教程
- VC/VC++ QQ
- VC/VC++ Socket编程
- VC/VC++ 钩子编程
- TangramMini组件应用教程
- VC/VC++ 窗体
- VC/VC++ ADO 教程
- Windows CE 教程
- VC/VC++ DLL(动态链接库)编程
- VC/VC++ PDFlib
- VC与MATLAB编程
- VC/VC++ DirectShow 教程
- VC++入门视频教程
- VC/VC++ COM组件设计与应用
- VC/VC++ ATL
- VC/VC++ WTL
- VC/VC++ 定制调试诊断工具和程序
- VC/VC++ 进程
- VC/VC++ Win32
- VC/VC++ WMI
- VC/VC++ 消息
- 更多VC/VC++专题……