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

📄 splistviewctrl.h

📁 Smartphone手机阅读软件
💻 H
字号:
//////////////////////////////////////////////////////////////////////
// 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -