⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treepropsheet.h

📁 MFC窗口程序设计源代码。相信大家看得懂。
💻 H
字号:

#if !defined(AFX_TREEPROPSHEET_H__50695CFB_FCE4_4188_ADB4_BF05A5488E41__INCLUDED_)
#define AFX_TREEPROPSHEET_H__50695CFB_FCE4_4188_ADB4_BF05A5488E41__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


#include "PropPageFrame.h"

#include <afxtempl.h>



class  CTreePropSheet : public CPropertySheet
{
	DECLARE_DYNAMIC(CTreePropSheet)

// Construction/Destruction
public:
	CTreePropSheet();
	CTreePropSheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
	CTreePropSheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
	virtual ~CTreePropSheet();


	//属性页

// Operations
public:
	//在DoModal()或者Create()之前调用此函数,
	//用于设置属性页的浏览方式:树形控件或者Tab控件
	BOOL SetTreeViewMode(BOOL bTreeViewMode = TRUE, BOOL bPageCaption = FALSE, BOOL bTreeImages = FALSE);
	//在DoModal()或者Create()之前调用此函数,
	//指定树形控件的宽度
	BOOL SetTreeWidth(int nWidth);

	//指定空页的文本内容
	void SetEmptyPageText(LPCTSTR lpszEmptyPageText);
	//设置空页文本的绘制方式:
	//DT_CENTER|DT_VCENTER|DT_NOPREFIX|DT_SINGLELINE
	DWORD SetEmptyPageTextFormat(DWORD dwFormat);
	//为没有图标的页或者空的父节点指定图像列表,标准大小为16x16像素
	BOOL SetTreeDefaultImages(CImageList *pImages);

// Public helpers
public:
	//设置属性页的图标
	static BOOL SetPageIcon(CPropertyPage *pPage, HICON hIcon);
	static BOOL SetPageIcon(CPropertyPage *pPage, CImageList &Images, int nImage);

	//销毁属性页的图标
	static BOOL DestroyPageIcon(CPropertyPage *pPage);

// Overridable implementation helpers
protected:
	//创建空页的文本
	virtual CString GenerateEmptyPageMessage(LPCTSTR lpszEmptyPageMessage, LPCTSTR lpszCaption);
	//在创建过程期间,创建树控件对象
	virtual CTreeCtrl* CreatePageTreeObject();

	//在创建过程期间,负责创建框架对象
	virtual CPropPageFrame* CreatePageFrame();

// Implementation helpers
protected:
	//将所有的子窗口移动指定数目的像素
	void MoveChildWindows(int nDx, int nDy);

	//重新填充包含几个属性页实体的树
	void RefillPageTree();

	//在属性页树上创建指定的路径并返回它的句柄
	HTREEITEM CreatePageTreeItem(LPCTSTR lpszPath, HTREEITEM hParent = TVI_ROOT);

	//将给定的路径分为顶层和其余部分:如给定“画笔::粗细::具体”,
	//它将返回“画笔”和“粗细::具体”两部分
	CString SplitPageTreePath(CString &strRest);

	//切换当前活动页
	BOOL KillActiveCurrentPage();

	//返回属性页树项
	HTREEITEM GetPageTreeItem(int nPage, HTREEITEM hRoot = TVI_ROOT);

	//选择并显示指定的页
	BOOL SelectPageTreeItem(int nPage);

	//为当前活动页选择并显示树项
	BOOL SelectCurrentPageTreeItem();

	//为当前选中的页更新标题
	void UpdateCaption();

	//激活先前的页
	void ActivatePreviousPage();

	//激活下一页
	void ActivateNextPage();

// Overridings
protected:
	//{{AFX_VIRTUAL(CTreePropSheet)
	public:
	virtual BOOL OnInitDialog();
	//}}AFX_VIRTUAL

// Message handlers
protected:
	//{{AFX_MSG(CTreePropSheet)
	afx_msg void OnDestroy();
	//}}AFX_MSG
	afx_msg LRESULT OnAddPage(WPARAM wParam, LPARAM lParam);
	afx_msg LRESULT OnRemovePage(WPARAM wParam, LPARAM lParam);
	afx_msg LRESULT OnSetCurSel(WPARAM wParam, LPARAM lParam);
	afx_msg LRESULT OnIsDialogMessage(WPARAM wParam, LPARAM lParam);

	afx_msg void OnPageTreeSelChanging(NMHDR *pNotifyStruct, LRESULT *plResult);
	afx_msg void OnPageTreeSelChanged(NMHDR *pNotifyStruct, LRESULT *plResult);
	DECLARE_MESSAGE_MAP()

// Properties
private:
	//树形属性表开关
	BOOL m_bTreeViewMode;
	//树控件
	CTreeCtrl *m_pwndPageTree;
	//属性表中框架的指针
	CPropPageFrame *m_pFrame;
	BOOL m_bPageTreeSelChangedActive;
	//页标题的显示开关
	BOOL m_bPageCaption;
	//树中显示图像的开关
	BOOL m_bTreeImages;
	//用于树形控件的图像列表
	CImageList m_Images;
	//缺省的图像列表
	CImageList m_DefaultImages;
	//用于空页显示的文本
	CString m_strEmptyPageMessage;
	//树形控件的宽度(象素单位)
	int m_nPageTreeWidth;

// Static Properties
private:
	//树视控件的ID
	static const UINT s_unPageTreeId;
};




/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ f黦t unmittelbar vor der vorhergehenden Zeile zus鋞zliche Deklarationen ein.

#endif // AFX_TREEPROPSHEET_H__50695CFB_FCE4_4188_ADB4_BF05A5488E41__INCLUDED_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -