cdbtreenode.h

来自「本人买的<<VC++项目开发实例>>源代码配套光盘.」· C头文件 代码 · 共 95 行

H
95
字号
// Copyright (C) 1991 - 1999 Rational Software Corporation

#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_CDBTREENODE_3C3734EF0067_INCLUDED
#define _INC_CDBTREENODE_3C3734EF0067_INCLUDED

//##ModelId=3C37774B0187
typedef struct tagDBTREE_NODE_CONTEXT
{
	//m_pos //当前的位置
	POINT	m_pos;
	//m_NodeType//当前的数据结点的类型。
	UINT	m_NodeType;
	//父窗口
	CWnd	*m_pParentWnd;

}DBTREE_NODE_CONTEXT;

class CDBExpDatabase;
//##ModelId=3C3734EF0067
class CDBTreeNode 
:public CObject
{
	DECLARE_DYNAMIC(CDBTreeNode)
public:
	//当用户使用鼠标的右键要弹出菜单的时候,这个函数被调用.
	//它会立即创建一个弹出式的菜单 m_ContextMenu
	//然后会调用BuildContextMenu来修改这个菜单
	//##ModelId=3C3735120194
	virtual BOOL PopupContextMenu(DBTREE_NODE_CONTEXT &context);
	//hItem是用来展开的树的结点。
	//state是用来表示目前的动作是要展开还是关闭。
	//##ModelId=3C41D26B03B5
	virtual BOOL ExpandItem(HTREEITEM hItem, UINT state)
		= 0;
	
protected:
	//##ModelId=3C41D26C00B3
	virtual const char * GetTreeNodeCaption();
	//##ModelId=3C41D26C00DC
	virtual void OnMenuItemClick(UINT nCmd);
	//这个函数是用来修改菜单的, 当它返回的时候, 
	//一个符合上下文环境的弹出式菜单就被创建并修改成功.
	//##ModelId=3C37358B0238
	virtual void BuildContextMenu(DBTREE_NODE_CONTEXT & context);

	//##ModelId=3C3734FC0138
	CMenu * m_pContextMenu;

private:	
	//##ModelId=3C3734FC0138
	//用来表示在树中的结点的句柄.
	//##ModelId=3C5B9B9F0210
	HTREEITEM m_hItem;

public:
	//##ModelId=3CDCDA570203
	char * GetDatabaseType();
	//##ModelId=3C673C070107
	virtual void Erase(CDBTreeNode * pTreeNode);

	//##ModelId=3C5CC9C70128
	virtual BOOL OpenRelatedView(LPARAM lParam)
		= 0;
	//##ModelId=3C5CC9C7013C
	int& ResetListViewItemCounter();
	//##ModelId=3CCC33700399
	LVITEM m_lvInsertStruct;
	/*在开始设计的时候,给BuildLVITEM采用的不是虚函数,可是到
	前来看,这是不可以的,因为,这样的话就不能更改在右视中的
	图标。*/
	//##ModelId=3C5CC9C70150
	virtual void BuildLVITEM(int& nIndex);
	//##ModelId=3C5B9B9F02B1
	HTREEITEM Get_hItem();
	//##ModelId=3C5B9B9F02BB
	void Set_hItem(HTREEITEM hItem);
	//##ModelId=3C5B9B9F02C5
	CDBExpDatabase *GetDatabase();
	//##ModelId=3CCC337003C1
	static CTreeCtrl * m_pTreeCtrl;
	//##ModelId=3C41D26C0104
	virtual void BuildTVITEM(HTREEITEM hParentItem);
	//##ModelId=3C41296501DF
	CDBTreeNode();
	//##ModelId=3C41296501E9
	virtual ~CDBTreeNode();
	//##ModelId=3CCC33710001
	TVINSERTSTRUCT m_tvInsertStruct;
};

#endif /* _INC_CDBTREENODE_3C3734EF0067_INCLUDED */

⌨️ 快捷键说明

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