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