📄 treepropsheet.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 + -