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 28b60a26ecSZhong Yang InsertColumn(0, _T("text"), LVCFMT_LEFT, CalculateColumnWidth()); 29b4946bd8SZhong Yang 30b4946bd8SZhong Yang CListCtrlEx::PreSubclassWindow(); 31b4946bd8SZhong Yang } 32b60a26ecSZhong Yang 33b60a26ecSZhong Yang int CListBoxEnhanced::CalculateColumnWidth() 34b60a26ecSZhong Yang { 35b60a26ecSZhong Yang CRect rect; 36b60a26ecSZhong Yang GetWindowRect(rect); 37*e2a78e69SZhong Yang return rect.Width() - theApp.DPI(20); 38b60a26ecSZhong Yang } 39b60a26ecSZhong 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) 43b60a26ecSZhong 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 } 69b60a26ecSZhong Yang 70b60a26ecSZhong Yang 71b60a26ecSZhong Yang void CListBoxEnhanced::OnSize(UINT nType, int cx, int cy) 72b60a26ecSZhong Yang { 73b60a26ecSZhong Yang CListCtrlEx::OnSize(nType, cx, cy); 74b60a26ecSZhong Yang 75b60a26ecSZhong Yang // TODO: �ڴ˴������Ϣ���������� 76b60a26ecSZhong Yang SetColumnWidth(0, CalculateColumnWidth()); 77b60a26ecSZhong Yang ShowScrollBar(SB_HORZ, FALSE); 78b60a26ecSZhong Yang } 79