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