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

📄 listex.h

📁 此为LIST控件的扩展功能
💻 H
字号:
#if !defined(AFX_LISTEX_H__F80434A6_DF5F_4332_89C4_EA3C06CB0846__INCLUDED_)
#define AFX_LISTEX_H__F80434A6_DF5F_4332_89C4_EA3C06CB0846__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ListEx.h : header file
//
#include "ItemDlg.h"
#include <afxtempl.h>

/////////////////////////////////////////////////////////////////////////////
// CListEx window

#define LIST_OPEN	_T("OPEN")
#define LIST_CLOSE	_T("CLOSE")

class CListEx : public CListCtrl
{
// Construction
public:
	CListEx();

// Attributes
public:

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CListEx)
	public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CListEx();

	// Generated message map functions
protected:
	//{{AFX_MSG(CListEx)
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnSetFocus(CWnd* pOldWnd);
	afx_msg void OnKillFocus(CWnd* pNewWnd);
	afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()


private:
	int m_iOpenList[2], m_iImage;//m_iOpenList[0]展开点行号,m_iOpenList[1]展开行数
	DWORD  m_iId;
	CImageList m_SmallImage;
	CItemDlg m_ItemDlg;
	CRect m_rect;
//	CString m_memstr[3];
//	LVITEM m_memlvi;
	CList<LIST_INFO, LIST_INFO&> m_ListInfo;

	void OpenList( int iSelect, int iHeight );
	void CloseList( int &iSelect );
	int AddImage( UINT nIDResource );
	BOOL GetItemRectEx( int iSelect, int iHeight, LPRECT pRect );
	void ChangeRect_Item( LPRECT pRect, const int iHeight );
	void ChangeRect_List( CWnd* pWnd, LPRECT pRect );
	void RedrawItemDlg();
	BOOL IsClose( int iSelect );
//	void memItem( int iSelect, BOOL bIN = TRUE );
	BOOL FindInfo( DWORD dwId, LIST_INFO& ListInfo );
	int GetiHeight( int iSelect );

	BOOL SetOpenClose( int iSelect, LPCTSTR strData ) { return this->SetItemText( iSelect, 3, strData ); }

public:
	int InsertItemEx( LPSTR str1, LPCTSTR str2, LPCTSTR str3, UINT nIDResource, CString* pStrList, int iList, LPCTSTR strEnd = _T(""), LPCTSTR strBT = _T(""), BUTTON_CALLBACK lpOnButton = NULL );//第1~3列信息, 图片,最后一行信息,按钮信息,按钮的回调 
	DWORD Start( CWnd* pWnd, int cx, int cy, int nInitial );//pWnd窗体指针,cx,cy图片尺寸,图片数量
	BOOL DeleteItemEx( int nItem = -1  );//-1为删除当前行
};

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

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_LISTEX_H__F80434A6_DF5F_4332_89C4_EA3C06CB0846__INCLUDED_)

⌨️ 快捷键说明

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