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

📄 ctrlview.h

📁 在VC编程环境下
💻 H
字号:
/*
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
	文件:CtrlView.h

	版权:Firebird Software Workroom

	声明:本源程序的版权受《中华人民共和国著作权法》以及其
		  它相关法律和条约的保护。任何有机会得到本源程序的
		  个人和机构,未经作者明确授权,不得将本源程序用于
		  任何商业目的(直接的或间接的)。对于非商业目的的使
		  用 (包括复制、传播、编译和修改), 原则上没有特别
		  的限制条款,但请在相关文档中说明其来源,并尊重原
		  作者的署名权。

	编写:秦传安	2000.4 - 2000.5

	联络:Tel:(0792)6323086	E_mail:chings@163.net
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
#ifndef _CTRLVIEW_H__
#define _CTRLVIEW_H__
//////////////////////////////////////////////////////////////////////
#include "FBView.h"

#include <commctrl.h>
#pragma comment(lib, "comctl32.lib")
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//本文件包含下列各类:
	//class CFBWnd
			//class CFBView;
					class CFBListView;		//列表控件
					class CFBTreeView;		//树型控件
					class CFBEditView;
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#define FB_LCN_SELCHANGED		0xB111
#define FB_TCN_SELCHANGED		0xB121
//######################################################################

/********************************************************************
*	class CFBListView
*	列表控件
********************************************************************/
class CFBListView : public CFBView  
{
public:
	CFBListView();
	~CFBListView();

	BOOL Create(CFBWnd* pParent,UINT nID,DWORD style = 0);

	void		SetImageList(HIMAGELIST himl,UINT nType = LVSIL_SMALL);
	HIMAGELIST	GetImageList();
	void		SetColumn(LPLVCOLUMN pcol,int nIndex);
	void		InsertColumn(LPLVCOLUMN pcol,int nIndex);
	void		InsertItem(LPLVITEM pitem);
	void		DeleteItem(int nIndex);
	void		DeleteAllItem();
	void		DeleteColumn(int nIndex);
	void		SetColumnWidth(int nIndex,int nWidth);
	int			FindItem(LV_FINDINFO* pfi,int nStart = 0);
	int			GetItemCount();
	void		SetItem(LPLVITEM pitem);
	void		GetItem(LPLVITEM pitem);
	void		Update(int nIndex);
	void		GetItemRect(int index,LPRECT pRc,int code);
	BOOL		GetColumn(int index,LPLVCOLUMN pcol);
	void		Sort(PFNLVCOMPARE pfnCompare,LPARAM lSortParam);

	void		SetExStyle(DWORD dwExStyle);

protected:
	virtual void DrawItem(LPDRAWITEMSTRUCT pds);
	virtual void OnNotify(LPNMHDR pNMHDR,LRESULT &lResult);
};
//###################################################################################

inline void CFBListView::SetImageList(HIMAGELIST himl,UINT nType){
	SendMessage(m_hWnd,LVM_SETIMAGELIST,(WPARAM)nType,(LPARAM)himl);}

inline HIMAGELIST CFBListView::GetImageList(){
	return (HIMAGELIST)SendMessage(m_hWnd,LVM_GETIMAGELIST,LVSIL_SMALL,0);}

inline void CFBListView::SetColumn(LPLVCOLUMN pcol,int nIndex){
	SendMessage(m_hWnd,LVM_SETCOLUMN,(WPARAM)nIndex,(LPARAM)pcol);}

inline void CFBListView::InsertColumn(LPLVCOLUMN pcol,int nIndex){
	SendMessage(m_hWnd,LVM_INSERTCOLUMN,(WPARAM)nIndex,(LPARAM)pcol);}

inline void CFBListView::InsertItem(LPLVITEM pitem){
	SendMessage(m_hWnd,LVM_INSERTITEM,0,(LPARAM)pitem);}

inline void CFBListView::DeleteItem(int nIndex){
	SendMessage(m_hWnd,LVM_DELETEITEM,(WPARAM)nIndex,0);}

inline void CFBListView::DeleteAllItem(){
	SendMessage(m_hWnd,LVM_DELETEALLITEMS,0,0);}

inline void CFBListView::DeleteColumn(int nIndex){
	SendMessage(m_hWnd,LVM_DELETECOLUMN,(WPARAM)nIndex,0);}

inline void CFBListView::SetColumnWidth(int nIndex,int nWidth){
	SendMessage(m_hWnd,LVM_SETCOLUMNWIDTH,(WPARAM)nIndex,MAKELPARAM(nWidth,0));}

inline int CFBListView::FindItem(LV_FINDINFO* pfi,int nStart){
	return SendMessage(m_hWnd,LVM_FINDITEM,(WPARAM)nStart,(LPARAM)pfi);}

inline int CFBListView::GetItemCount(){
	return SendMessage(m_hWnd,LVM_GETITEMCOUNT,0,0);}

inline void CFBListView::SetItem(LPLVITEM pitem){
		SendMessage(m_hWnd,LVM_SETITEM,0,(LPARAM)pitem);}

inline void CFBListView::GetItem(LPLVITEM pitem){
	SendMessage(m_hWnd,LVM_GETITEM,0,(LPARAM)pitem);}

inline void CFBListView::Update(int nIndex){
	SendMessage(m_hWnd,LVM_UPDATE,(WPARAM)nIndex,0);}

inline void CFBListView::GetItemRect(int index,LPRECT pRc,int code){
	ListView_GetItemRect(m_hWnd,index,pRc,code);}

inline BOOL CFBListView::GetColumn(int index,LPLVCOLUMN pcol){
	return SendMessage(m_hWnd,LVM_GETCOLUMN,(WPARAM)index,(LPARAM)pcol);}

inline void CFBListView::Sort(PFNLVCOMPARE pfnCompare,LPARAM lSortParam){
	SendMessage(m_hWnd,LVM_SORTITEMS,lSortParam,(LPARAM)pfnCompare);}

/********************************************************************
*	class CFBTreeView
*	树型控件
********************************************************************/

class CFBTreeView : public CFBView 
{
public:
	CFBTreeView();
	~CFBTreeView();

	BOOL Create(CFBWnd *pParent,DWORD style,UINT uID = 0);

	HIMAGELIST	SetImageList(HIMAGELIST himl,int type = TVSIL_NORMAL);
	HIMAGELIST	GetImageList(int type = TVSIL_NORMAL);
	HTREEITEM	InsertItem(LPTV_INSERTSTRUCT lpis);
	BOOL		DeleteItem(HTREEITEM hItem);
	BOOL		DeleteAll();
	void		SetItem(LPTVITEM lpti);
	BOOL		GetItem(LPTVITEM lpti);
	int			GetItemCount();
	HTREEITEM	GetRoot();
	HTREEITEM	GetParentItem(HTREEITEM hItem);
	HTREEITEM	GetChildItem(HTREEITEM hItem);
	HTREEITEM	GetSelection();
	BOOL		SelectItem(HTREEITEM hItem);
	BOOL		SortChildren(HTREEITEM hParentItem);
	BOOL		SortChildrenCB(LPTVSORTCB pSort);
	HTREEITEM	HitTest(LPTV_HITTESTINFO lpht);
	BOOL		Expand(HTREEITEM hItem,UINT flag);
	void		SetTextColor(COLORREF clr);
	
	void		GetItemText(HTREEITEM hItem,LPTSTR szItemText);
	DWORD		GetItemData(HTREEITEM hItem);
			
protected:
	void OnDraw(HDC hDC);
	virtual void OnNotify(LPNMHDR pNMHDR,LRESULT &lResult);
};
//###############################################################################
inline HIMAGELIST CFBTreeView::SetImageList(HIMAGELIST himl,int type){
	return (HIMAGELIST)SendMessage(m_hWnd,TVM_SETIMAGELIST,(WPARAM)type,(LPARAM)himl);}

inline HIMAGELIST CFBTreeView::GetImageList(int type){
	return (HIMAGELIST)SendMessage(m_hWnd,TVM_GETIMAGELIST,(WPARAM)type,0);}

inline HTREEITEM CFBTreeView::InsertItem(LPTV_INSERTSTRUCT lpis){
	return (HTREEITEM)SendMessage(m_hWnd,TVM_INSERTITEM,0,(LPARAM)lpis);}

inline BOOL CFBTreeView::DeleteItem(HTREEITEM hItem){
	return SendMessage(m_hWnd,TVM_DELETEITEM,0,(LPARAM)hItem);}

inline BOOL CFBTreeView::DeleteAll(){
	return SendMessage(m_hWnd,TVM_DELETEITEM,0,(LPARAM)TVI_ROOT);}

inline void CFBTreeView::SetItem(LPTVITEM lpti){
	SendMessage(m_hWnd,TVM_SETITEM,0,(LPARAM)lpti);}

inline BOOL CFBTreeView::GetItem(LPTVITEM lpti){
	return SendMessage(m_hWnd,TVM_GETITEM,0,(LPARAM)lpti);}

inline int CFBTreeView::GetItemCount(){
	return (int)SendMessage(m_hWnd,TVM_GETCOUNT,0,0);}

inline HTREEITEM CFBTreeView::GetRoot(){
	return TreeView_GetRoot(m_hWnd);}

inline HTREEITEM CFBTreeView::GetParentItem(HTREEITEM hItem){
	return TreeView_GetParent(m_hWnd,hItem);}

inline HTREEITEM CFBTreeView::GetChildItem(HTREEITEM hItem){
	return TreeView_GetChild(m_hWnd,hItem);}

inline HTREEITEM CFBTreeView::GetSelection(){
	return TreeView_GetSelection(m_hWnd);}

inline BOOL CFBTreeView::SelectItem(HTREEITEM hItem){
	return  TreeView_SelectItem(m_hWnd,hItem);}

inline BOOL CFBTreeView::SortChildren(HTREEITEM hParentItem){
	return TreeView_SortChildren(m_hWnd,hParentItem,NULL);}

inline BOOL CFBTreeView::SortChildrenCB(LPTVSORTCB pSort){
	return TreeView_SortChildrenCB(m_hWnd,pSort,NULL);}

inline HTREEITEM CFBTreeView::HitTest(LPTV_HITTESTINFO lpht){
	return (HTREEITEM)SendMessage(m_hWnd,TVM_HITTEST,0,(WPARAM)lpht);}

inline BOOL CFBTreeView::Expand(HTREEITEM hItem,UINT flag){
	return  TreeView_Expand(m_hWnd,hItem,flag);}

inline void CFBTreeView::SetTextColor(COLORREF clr){
	SendMessage(m_hWnd,TVM_SETTEXTCOLOR,0,(LPARAM)clr);}

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
class CFBEditView : public CFBView
{
public:
	CFBEditView();
	~CFBEditView();

	BOOL Create(CFBWnd* pParent,UINT uID = 0,DWORD style = 0);

	void SetText(LPTSTR pText);
	void AddText(LPTSTR pText);
	void Copy();
	void Paste();
	void SetSelect(int start,int end);
	void SetFont(HFONT hFont,BOOL bRedraw);
	int GetLineCount();
	int GetLine(int index,LPTSTR lpBuffer);
};
//######################################################################
inline void CFBEditView::SetText(LPTSTR pText){
	SendMessage(m_hWnd,WM_SETTEXT,0,(LPARAM)pText);}

inline void CFBEditView::Copy(){
	SendMessage(m_hWnd,WM_COPY,0,0);}

inline void CFBEditView::Paste(){
	SendMessage(m_hWnd,WM_PASTE,0,0);}

inline void CFBEditView::SetSelect(int start,int end){
	SendMessage(m_hWnd,EM_SETSEL,start,end);}

inline void CFBEditView::SetFont(HFONT hFont,BOOL bRedraw){
	SendMessage(m_hWnd,WM_SETFONT,(WPARAM)hFont,MAKELPARAM(bRedraw, 0));}

inline int CFBEditView::GetLineCount(){
	return SendMessage(m_hWnd,EM_GETLINECOUNT,0,0);}

inline int CFBEditView::GetLine(int index,LPTSTR lpBuffer){
	return SendMessage(m_hWnd,EM_GETLINE,index,(LPARAM)lpBuffer);}
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#endif //_CTRLVIEW_H__

⌨️ 快捷键说明

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