76 lines
1.6 KiB
C++
76 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include <afxwin.h>
|
|
#include <vector>
|
|
#include <string>
|
|
#include "CEXMemFileQueue.h"
|
|
|
|
struct MyListItem {
|
|
int id;
|
|
CString name;
|
|
CString date;
|
|
};
|
|
|
|
class CEXVirtualListCtrl : public CListCtrl {
|
|
DECLARE_DYNAMIC(CEXVirtualListCtrl)
|
|
|
|
public:
|
|
CEXVirtualListCtrl();
|
|
virtual ~CEXVirtualListCtrl();
|
|
|
|
//void Initialize();
|
|
void SetData(CEXMemFileQueue* pQueue);
|
|
|
|
void StartAutoRefresh(int lMSecond);
|
|
void StopAutoRefresh();
|
|
void RefreshShow();
|
|
|
|
protected:
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnLvnGetdispinfo(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnNMCustomdraw(NMHDR* pNMHDR, LRESULT* pResult);
|
|
|
|
private:
|
|
CEXMemFileQueue* m_pQueueData;
|
|
int m_lOldCount;
|
|
public:
|
|
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
|
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
|
|
virtual BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
|
|
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
|
};
|
|
|
|
|
|
// CEXVirtualListDlg 对话框
|
|
|
|
class CEXVirtualListDlg : public CDialogEx
|
|
{
|
|
DECLARE_DYNAMIC(CEXVirtualListDlg)
|
|
|
|
public:
|
|
CEXVirtualListDlg(CWnd* pParent = nullptr); // 标准构造函数
|
|
virtual ~CEXVirtualListDlg();
|
|
|
|
//给虚拟列表关联数据
|
|
void SetData(CEXMemFileQueue* pQueue);
|
|
|
|
// 对话框数据
|
|
#ifdef AFX_DESIGN_TIME
|
|
enum { IDD = IDD_CEXVirtualListDlg };
|
|
#endif
|
|
|
|
virtual BOOL OnInitDialog();
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
afx_msg void OnBnClickedOk();
|
|
afx_msg void OnBnClickedCancel();
|
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
|
|
private:
|
|
CEXVirtualListCtrl* m_pstVirtualList;
|
|
};
|