| | |
| | | #include <vector> |
| | | #include <memory> |
| | | #include <unordered_map> |
| | | #include <set> |
| | | |
| | | |
| | | // ===== 自定义通知:点击需要弹出全文的单元格 ===== |
| | | #ifndef ELCN_SHOWFULLTEXT |
| | | #define ELCN_SHOWFULLTEXT (NM_FIRST - 201) |
| | | struct NMC_ELC_SHOWFULLTEXT { |
| | | NMHDR hdr; // hwndFrom / idFrom / code = ELCN_SHOWFULLTEXT |
| | | int iItem; // 行 |
| | | int iSubItem; // 列(0-based) |
| | | CString text; // 完整文本 |
| | | }; |
| | | #endif |
| | | |
| | | class CExpandableListCtrl : public CListCtrl |
| | | { |
| | |
| | | // 若为 FALSE,则选中时仍显示自定义颜色 |
| | | void SetPreserveSelectionHighlight(BOOL b) { m_preserveSelHighlight = b; } |
| | | |
| | | // 清除树 |
| | | void ClearTree(); |
| | | |
| | | // 设置哪些列需要“被截断则通知父窗口显示全文”(0-based列号) |
| | | void SetPopupFullTextColumns(const std::vector<int>& cols); |
| | | |
| | | std::set<int> m_popupCols; // 需要通知的列集合 |
| | | bool _IsCellTruncated(int row, int col, const CString& text) const; |
| | | |
| | | protected: |
| | | virtual void PreSubclassWindow(); |
| | | afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); |