xref: /MusicPlayer2/MusicPlayer2/CListBoxEnhanced.cpp (revision e6aa5f8b83cafea2f3ac1c059a48e6bab5510daf)
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: �ڴ����ר�ô����/����û���
25*e6aa5f8bSZhong Yang     SetExtendedStyle(GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_INFOTIP);
26b4946bd8SZhong Yang 	ModifyStyle(0, LVS_NOCOLUMNHEADER);
27b4946bd8SZhong Yang 
28b4946bd8SZhong Yang 	CRect rect;
29b4946bd8SZhong Yang 	GetWindowRect(rect);
30b4946bd8SZhong Yang 	InsertColumn(0, _T("text"), LVCFMT_LEFT, rect.Width() - theApp.DPI(20) - 1);
31b4946bd8SZhong Yang 
32b4946bd8SZhong Yang 
33b4946bd8SZhong Yang 	CListCtrlEx::PreSubclassWindow();
34b4946bd8SZhong Yang }
35b4946bd8SZhong Yang BEGIN_MESSAGE_MAP(CListBoxEnhanced, CListCtrlEx)
36b4946bd8SZhong Yang 	ON_NOTIFY_REFLECT(NM_CLICK, &CListBoxEnhanced::OnNMClick)
37b4946bd8SZhong Yang 	ON_NOTIFY_REFLECT(NM_RCLICK, &CListBoxEnhanced::OnNMRClick)
38b4946bd8SZhong Yang END_MESSAGE_MAP()
39b4946bd8SZhong Yang 
40b4946bd8SZhong Yang 
41b4946bd8SZhong Yang void CListBoxEnhanced::OnNMClick(NMHDR *pNMHDR, LRESULT *pResult)
42b4946bd8SZhong Yang {
43b4946bd8SZhong Yang 	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
44b4946bd8SZhong Yang 	// TODO: �ڴ���ӿؼ�֪ͨ����������
45b4946bd8SZhong Yang 	CWnd* pParent{ GetParent() };
46b4946bd8SZhong Yang 	if (pParent != nullptr)
47b4946bd8SZhong Yang 		pParent->SendMessage(WM_LISTBOX_SEL_CHANGED, (WPARAM)this, (LPARAM)pNMItemActivate->iItem);
48b4946bd8SZhong Yang 
49b4946bd8SZhong Yang 	*pResult = 0;
50b4946bd8SZhong Yang }
51b4946bd8SZhong Yang 
52b4946bd8SZhong Yang 
53b4946bd8SZhong Yang void CListBoxEnhanced::OnNMRClick(NMHDR *pNMHDR, LRESULT *pResult)
54b4946bd8SZhong Yang {
55b4946bd8SZhong Yang 	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
56b4946bd8SZhong Yang 	// TODO: �ڴ���ӿؼ�֪ͨ����������
57b4946bd8SZhong Yang 	CWnd* pParent{ GetParent() };
58b4946bd8SZhong Yang 	if (pParent != nullptr)
59b4946bd8SZhong Yang 		pParent->SendMessage(WM_LISTBOX_SEL_CHANGED, (WPARAM)this, (LPARAM)pNMItemActivate->iItem);
60b4946bd8SZhong Yang 
61b4946bd8SZhong Yang 	*pResult = 0;
62b4946bd8SZhong Yang }
63