1b4946bd8SZhong Yang #include "stdafx.h" 2b4946bd8SZhong Yang #include "CListBoxEnhanced.h" 3b4946bd8SZhong Yang #include "MusicPlayer2.h" 4b4946bd8SZhong Yang 5b4946bd8SZhong Yang 6b4946bd8SZhong Yang CListBoxEnhanced::CListBoxEnhanced() 7b4946bd8SZhong Yang : CListCtrlEx() 8b4946bd8SZhong Yang { 9b4946bd8SZhong Yang } 10b4946bd8SZhong Yang 11b4946bd8SZhong Yang 12b4946bd8SZhong Yang CListBoxEnhanced::~CListBoxEnhanced() 13b4946bd8SZhong Yang { 14b4946bd8SZhong Yang } 15b4946bd8SZhong Yang 16b4946bd8SZhong Yang void CListBoxEnhanced::AddString(LPCTSTR str) 17b4946bd8SZhong Yang { 18b4946bd8SZhong Yang int cnt = GetItemCount(); 19b4946bd8SZhong Yang InsertItem(cnt, str); 20b4946bd8SZhong Yang } 21b4946bd8SZhong Yang 22b4946bd8SZhong Yang void CListBoxEnhanced::PreSubclassWindow() 23b4946bd8SZhong Yang { 24b4946bd8SZhong Yang // TODO: �ڴ����ר�ô����/����û��� 25e6aa5f8bSZhong Yang SetExtendedStyle(GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_INFOTIP); 26b4946bd8SZhong Yang ModifyStyle(0, LVS_NOCOLUMNHEADER); 27b4946bd8SZhong Yang 28*b60a26ecSZhong Yang InsertColumn(0, _T("text"), LVCFMT_LEFT, CalculateColumnWidth()); 29b4946bd8SZhong Yang 30b4946bd8SZhong Yang CListCtrlEx::PreSubclassWindow(); 31b4946bd8SZhong Yang } 32*b60a26ecSZhong Yang 33*b60a26ecSZhong Yang int CListBoxEnhanced::CalculateColumnWidth() 34*b60a26ecSZhong Yang { 35*b60a26ecSZhong Yang CRect rect; 36*b60a26ecSZhong Yang GetWindowRect(rect); 37*b60a26ecSZhong Yang return rect.Width() - theApp.DPI(20) - 1; 38*b60a26ecSZhong Yang } 39*b60a26ecSZhong Yang 40b4946bd8SZhong Yang BEGIN_MESSAGE_MAP(CListBoxEnhanced, CListCtrlEx) 41b4946bd8SZhong Yang ON_NOTIFY_REFLECT(NM_CLICK, &CListBoxEnhanced::OnNMClick) 42b4946bd8SZhong Yang ON_NOTIFY_REFLECT(NM_RCLICK, &CListBoxEnhanced::OnNMRClick) 43*b60a26ecSZhong Yang ON_WM_SIZE() 44b4946bd8SZhong Yang END_MESSAGE_MAP() 45b4946bd8SZhong Yang 46b4946bd8SZhong Yang 47b4946bd8SZhong Yang void CListBoxEnhanced::OnNMClick(NMHDR *pNMHDR, LRESULT *pResult) 48b4946bd8SZhong Yang { 49b4946bd8SZhong Yang LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); 50b4946bd8SZhong Yang // TODO: �ڴ���ӿؼ�֪ͨ���������� 51b4946bd8SZhong Yang CWnd* pParent{ GetParent() }; 52b4946bd8SZhong Yang if (pParent != nullptr) 53b4946bd8SZhong Yang pParent->SendMessage(WM_LISTBOX_SEL_CHANGED, (WPARAM)this, (LPARAM)pNMItemActivate->iItem); 54b4946bd8SZhong Yang 55b4946bd8SZhong Yang *pResult = 0; 56b4946bd8SZhong Yang } 57b4946bd8SZhong Yang 58b4946bd8SZhong Yang 59b4946bd8SZhong Yang void CListBoxEnhanced::OnNMRClick(NMHDR *pNMHDR, LRESULT *pResult) 60b4946bd8SZhong Yang { 61b4946bd8SZhong Yang LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); 62b4946bd8SZhong Yang // TODO: �ڴ���ӿؼ�֪ͨ���������� 63b4946bd8SZhong Yang CWnd* pParent{ GetParent() }; 64b4946bd8SZhong Yang if (pParent != nullptr) 65b4946bd8SZhong Yang pParent->SendMessage(WM_LISTBOX_SEL_CHANGED, (WPARAM)this, (LPARAM)pNMItemActivate->iItem); 66b4946bd8SZhong Yang 67b4946bd8SZhong Yang *pResult = 0; 68b4946bd8SZhong Yang } 69*b60a26ecSZhong Yang 70*b60a26ecSZhong Yang 71*b60a26ecSZhong Yang void CListBoxEnhanced::OnSize(UINT nType, int cx, int cy) 72*b60a26ecSZhong Yang { 73*b60a26ecSZhong Yang CListCtrlEx::OnSize(nType, cx, cy); 74*b60a26ecSZhong Yang 75*b60a26ecSZhong Yang // TODO: �ڴ˴������Ϣ���������� 76*b60a26ecSZhong Yang SetColumnWidth(0, CalculateColumnWidth()); 77*b60a26ecSZhong Yang ShowScrollBar(SB_HORZ, FALSE); 78*b60a26ecSZhong Yang } 79