1 #pragma once 2 #include "ListCtrlEx.h" 3 4 #define WM_LISTBOX_SEL_CHANGED (WM_USER+116) 5 6 class CListBoxEnhanced : 7 public CListCtrlEx 8 { 9 public: 10 CListBoxEnhanced(); 11 ~CListBoxEnhanced(); 12 13 void AddString(LPCTSTR str); 14 CString GetItemText(int index); 15 virtual bool DeleteItem(int nItem) override; 16 17 protected: 18 virtual void PreSubclassWindow(); 19 int CalculateColumnWidth(); 20 21 DECLARE_MESSAGE_MAP() 22 afx_msg void OnNMClick(NMHDR *pNMHDR, LRESULT *pResult); 23 afx_msg BOOL OnNMRClick(NMHDR *pNMHDR, LRESULT *pResult); //这里函数的返回值必须为BOOL,消息映射的宏使用ON_NOTIFY_REFLECT_EX,函数返回FALSE,这样派生类才能正常响应此消息 24 afx_msg void OnSize(UINT nType, int cx, int cy); 25 }; 26 27