www.pudn.com > PhoneReaderSrc.rar > SPListViewCtrl.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{ 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_)