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

📄 chklistbox.h

📁 手机短信骚扰程序源码。如果有人恶意的骚扰你的话
💻 H
字号:
/////////////////////////////////////////////////////////////////////////////
// Check List Box for 32 and 16 bit
/////////////////////////////////////////////////////////////////////////////

#ifndef __CHKLSTBX_H
#define __CHKLSTBX_H

// Include for resources
#include "resource.h"

#define PADDING			5

#define HSCROLLAMOUNT	10

#define UNCHECKED		0
#define CHECKED			1
#define INDETERMINATE	2

// Structure to hold each item
struct LISTITEM
{
	LISTITEM*	pParentItem;

	int			nCheckedState;
	int			nTotalWidth;
	int			nTextLength;
	int			nLevel;
	bool		bSelected;
	DWORD		dwID;
	CString		csText;

	// Appearence
	COLORREF	crTextColor;
	COLORREF	crTextHighColor;
	COLORREF	crBgHighlightColor;
	
	// List to other child list items
	CPtrList	m_ItemList;
};

/////////////////////////////////////////////////////////////////////////////
// CCheckControl window
class CCheckList;
class CCheckControl : public CWnd
{
	int			m_nCurrentRow,
				m_nScreenRow,
				m_nPrevSelRow,
				m_nViewableRows,
				m_nTop,
				m_nLeft;
	CRect		m_WindowRect;
	LISTITEM*	m_pPrevSelItem;

	// Parents!
	CPtrList*		m_pRootPtrList;
	CCheckList*		m_pParent;
	CWnd*			m_pSuperParent;

	bool		DrawItems(CDC* pDC, CPtrList* pItemList, bool bChangeCheckedState = false, int nCheckedState = CHECKED);
	void		DrawItem(CDC* pDC, LISTITEM* pListItem);
	void		DrawBitmap( CDC* pdc, CSize ImagePos, int nCheckedState );
	LISTITEM*	GetItemClickedOn( CPtrList* pItemList, int nItem );
	void		ChangeParentItems(CDC* pDC, LISTITEM* pItem);

// Construction
public:
	CCheckControl();
	BOOL Create( CRect Rect, CCheckList* pParent, UINT nID, CWnd* pSuperParent, CPtrList* pRootPtrList, COLORREF crBkColor );
	void		UpdateScrollBar();
	void		SetTopIndex(int nTop);
	inline int	GetTopIndex()	{ return m_nTop; };
	int			SetCurSel(int nSelection);
	inline int  GetCurSel()		{ return m_nPrevSelRow; };
	int			SetCheck(int nItem, int nCheckState);
	inline int  GetViewableRows()	{ return m_nViewableRows; };

// Operations
public:
	
// Attributes
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CCheckControl)
	//}}AFX_VIRTUAL

// Implementation
public:
	void SetValue();
	virtual ~CCheckControl();

	// Generated message map functions
protected:
	//{{AFX_MSG(CCheckControl)
	afx_msg void OnPaint();
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////
// CCheckList window
class CCheckList : public CWnd
{
	int			m_nLineHeight,
				m_nWidestItem,
				m_nTotalRowCount,
				m_nCurrentRow;

	bool		m_bDeleteFont;
	CRect		m_WindowRect;
	CBitmap*	m_pCheck;
	CBitmap*	m_pUnCheck;
	CBitmap*	m_pMiddleCheck;
	CSize		m_cBitmapDimen;
	
	// Check control 
	CCheckControl*	m_pCheckControl;

	// GDI Items
	CFont*		m_pTextFont;
	CPen*		m_pBkPen;
	CBrush*		m_pBkBrush;
	COLORREF	m_crTextColor;
	COLORREF	m_crTextHighColor;

	// Main Item list
	CPtrList		m_RootItemList;

	void		DeleteItems(CPtrList* pItemList);
	bool		LoadBitmaps(UINT nCheckBitmap, UINT nUnCheckBitmap, UINT nMiddleCheckBitmap);
	LISTITEM*	GetItem( CPtrList* pItemList, int nItem );
	LISTITEM*	GetItem( CPtrList* pItemList, DWORD dwID );
	void		GetWidestItem(CPtrList* pItemList);


// INTERNAL Functions
public:
	inline int			GetWidestItem()		{ return m_nWidestItem; };
	inline int			GetLineHeight()		{ return m_nLineHeight; };
	inline CPen*		GetBkPen()			{ return m_pBkPen; };
	inline CBrush*		GetBkBrush()		{ return m_pBkBrush; };
	inline CFont*		GetTextFont()		{ return m_pTextFont; };
	inline int			GetImageWidth()		{ return m_cBitmapDimen.cx; };
	inline int			GetImageHeight()	{ return m_cBitmapDimen.cy; };
	inline CBitmap*		GetCheckImage()		{ return m_pCheck; };
	inline CBitmap*		GetUnCheckImage()	{ return m_pUnCheck; };
	inline CBitmap*		GetMiddleImage()	{ return m_pMiddleCheck; };

// USER Functions
public:
	CCheckList();
	BOOL Create( CRect Rect, CWnd* pParent, UINT uID, UINT nCheckBitmap, UINT nUnCheckBitmap, UINT nMiddleCheckBitmap,
							COLORREF crBkColor   			= GetSysColor(COLOR_WINDOW),
							CFont* pCustomFont				= NULL);

	LISTITEM*	AddString(	CString		csText,
							LISTITEM*	pParentItem			= NULL,
							int			nCheckState			= UNCHECKED,
							DWORD		dwID				= -1,		
							COLORREF	crTextColor			= GetSysColor(COLOR_INFOTEXT),
							COLORREF	crTextHighColor	 	= GetSysColor(COLOR_HIGHLIGHTTEXT),
							COLORREF	crBgHighlightColor 	= GetSysColor(COLOR_HIGHLIGHT));
	
	int			DeleteString(int nItem);
	int			GetCount(LISTITEM*	pParentItem	= NULL);
	int			GetTopIndex();
	int			SetTopIndex(int nTop);
	DWORD		GetItemData(int nItem);
	int			SetItemData(int nItem, DWORD dwID);
	LISTITEM*	GetItem(int nItem);
	LISTITEM*	GetItem(DWORD dwID);
	int			GetText(int nItem, CString* pString );		
	int			GetTextLen(int nItem );		
	int			GetCurSel();
	int			SetCurSel(int nItem);
	int			SetCheck(int nItem, int nCheckState );
	int			GetCheck(int nItem);
	void		ResetContent();
	
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CCheckList)
	//}}AFX_VIRTUAL

// Implementation
public:
	int SetItemText(int nItem,CString strNew);
	virtual ~CCheckList();

	// Generated message map functions
protected:
	//{{AFX_MSG(CCheckList)
	afx_msg void OnPaint();
	afx_msg void OnSize(UINT nType, int cx, int cy);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

#endif


⌨️ 快捷键说明

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