splistviewctrl.h

来自「Smartphone手机阅读软件」· C头文件 代码 · 共 86 行

H
86 行
字号
//////////////////////////////////////////////////////////////////////
// Filename:	SPListViewCtrl.h
// Description:	The list view control a-la "Programs" list
// Created:		July, 2002
// Author:		Yaroslav Goncharov, yaroslav@softspb.com
// Comments:	See www.smartphonedn.com for description
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SPLISTVIEWCTRL_H__AB7967B9_C7F9_4336_9260_8BD4CDA70009__INCLUDED_)
#define AFX_SPLISTVIEWCTRL_H__AB7967B9_C7F9_4336_9260_8BD4CDA70009__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "resource.h"

#define SPL_EXECUTE (WM_USER + 117)

class CSPListViewCtrl : public CWindowImpl<CSPListViewCtrl, CListViewCtrl>
{
public:
	void SetFontColor(COLORREF crSelected, COLORREF crUnSelected);
	void SetBkImage(UINT nID);
	void SetFontSize(int nFontSize);
	void InitControl();
	DECLARE_WND_SUPERCLASS(NULL, CListViewCtrl::GetWndClassName())

	BEGIN_MSG_MAP(CSPListViewCtrl)
		MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
		MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown)
		MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
		REFLECTED_NOTIFY_CODE_HANDLER(NM_CUSTOMDRAW,OnCustomDraw)
	END_MSG_MAP()

	CSPListViewCtrl();
	virtual ~CSPListViewCtrl();

	void AddItem(LPCTSTR lpszText, int nIcon);
	HWND Create(HWND hParent, _U_RECT rc);
	void DeleteItem(int nIndex);
	BOOL m_ImageTypeFlag;
	BOOL m_MoreFlag;

public:
	void UpdateNumeration();
	void CreateItemFont();
	LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
	{
		SetFont(NULL);
		::DeleteObject(m_hFont);
		return 0;
	}
	LRESULT OnKeyDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
	{
		int nIndex = wParam - '1';
		if (wParam == VK_RETURN) 
		{
			nIndex = GetSelectedIndex();
		}
		if (nIndex >= 0 && nIndex < GetItemCount()) 
		{
			SelectItem(nIndex);
			::SendMessage(GetParent(), SPL_EXECUTE, nIndex, 0);	
		}

		if ((wParam == VK_TLEFT) || (wParam == VK_TRIGHT)|| (wParam == VK_TUP) || (wParam == VK_TDOWN))
		{
			::SendMessage(GetParent(), WM_KEYDOWN, wParam, 0);
		}
		bHandled = FALSE;

		return 0;
	}
	LRESULT OnEraseBkgnd(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
	LRESULT OnCustomDraw(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
private:
	HFONT m_hFont;
	int	  m_nFontSize;
protected:
	UINT m_nImage;
	COLORREF m_crSelected,m_crUnSelected;
};

#endif // !defined(AFX_SPLISTVIEWCTRL_H__AB7967B9_C7F9_4336_9260_8BD4CDA70009__INCLUDED_)

⌨️ 快捷键说明

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