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