XListCtrl.h
资源名称:多线程实例.rar [点击查看]
上传用户:dfzycw
上传日期:2010-01-10
资源大小:66k
文件大小:8k
源码类别:
进程与线程
开发平台:
Visual C++
- // XListCtrl.h Version 1.3
- //
- // Author: Hans Dietrich
- // hdietrich2@hotmail.com
- //
- // This software is released into the public domain.
- // You are free to use it in any way you like.
- //
- // This software is provided "as is" with no expressed
- // or implied warranty. I accept no liability for any
- // damage or loss of business that this software may cause.
- //
- ///////////////////////////////////////////////////////////////////////////////
- #ifndef XLISTCTRL_H
- #define XLISTCTRL_H
- #include "XHeaderCtrl.h"
- #ifndef DO_NOT_INCLUDE_XCOMBOLIST
- #include "XComboList.h"
- #endif
- extern UINT NEAR WM_XLISTCTRL_COMBO_SELECTION;
- extern UINT NEAR WM_XLISTCTRL_CHECKBOX_CLICKED;
- ///////////////////////////////////////////////////////////////////////////////
- // Style bits for use with SetExtendedStyleX()
- // none defined yet
- ///////////////////////////////////////////////////////////////////////////////
- // CXListCtrl data
- struct XLISTCTRLDATA
- {
- // ctor
- XLISTCTRLDATA()
- {
- bEnabled = TRUE;
- crText = ::GetSysColor(COLOR_WINDOWTEXT);
- crBackground = ::GetSysColor(COLOR_WINDOW);
- bShowProgress = FALSE;
- nProgressPercent = 0;
- strProgressMessage = _T("");
- bShowProgressMessage = TRUE;
- nCheckedState = -1;
- bBold = FALSE;
- nImage = -1;
- #ifndef NO_XLISTCTRL_TOOL_TIPS
- strToolTip = _T("");
- #endif
- bCombo = FALSE;
- bComboIsClicked = FALSE;
- nComboListHeight = 10;
- nInitialComboSel = 0;
- psa = NULL;
- dwItemData = 0;
- }
- BOOL bEnabled; // TRUE = enabled, FALSE = disabled (gray text)
- BOOL bBold; // TRUE = display bold text
- int nImage; // index in image list, else -1
- #ifndef NO_XLISTCTRL_TOOL_TIPS
- CString strToolTip; // tool tip text for cell
- #endif
- // for combo
- BOOL bCombo; // TRUE = display combobox
- BOOL bComboIsClicked; // TRUE = downarrow is clicked
- CStringArray * psa; // pointer to string array for combo listbox
- int nComboListHeight; // combo listbox height (in rows)
- int nInitialComboSel; // initial combo listbox selection (0 = first)
- // for color
- COLORREF crText;
- COLORREF crBackground;
- // for progress
- BOOL bShowProgress; // true = show progress control
- int nProgressPercent; // 0 - 100
- CString strProgressMessage; // custom message for progress indicator -
- // MUST INCLUDE %d
- BOOL bShowProgressMessage; // TRUE = display % message, or custom message
- // if one is supplied
- // for checkbox
- int nCheckedState; // -1 = don't show, 0 = unchecked, 1 = checked
- DWORD dwItemData; // pointer to app's data
- };
- ///////////////////////////////////////////////////////////////////////////////
- // CXListCtrl class
- class CXListCtrl : public CListCtrl
- {
- // Construction
- public:
- CXListCtrl();
- virtual ~CXListCtrl();
- // Attributes
- public:
- // Operations
- public:
- int CountCheckedItems(int nSubItem);
- BOOL DeleteAllItems();
- BOOL DeleteItem(int nItem);
- void DeleteProgress(int nItem, int nSubItem);
- BOOL GetBold(int nItem, int nSubItem);
- int GetCheckbox(int nItem, int nSubItem);
- int GetColumns();
- CString GetComboText(int iItem, int iSubItem);
- int GetCurSel();
- BOOL GetEnabled(int nItem);
- DWORD GetExtendedStyleX() { return m_dwExtendedStyleX; }
- int GetHeaderCheckedState(int nSubItem);
- DWORD GetItemData(int nItem);
- BOOL GetSubItemRect(int iItem, int iSubItem, int nArea, CRect& rect);
- int InsertItem(int nItem, LPCTSTR lpszItem);
- int InsertItem(int nItem,
- LPCTSTR lpszItem,
- COLORREF crText,
- COLORREF crBackground);
- int InsertItem(const LVITEM* pItem);
- BOOL SetBold(int nItem, int nSubItem, BOOL bBold);
- BOOL SetComboBox(int nItem,
- int nSubItem,
- BOOL bEnableCombo,
- CStringArray *psa,
- int nComboListHeight,
- int nInitialComboSel);
- BOOL SetCheckbox(int nItem, int nSubItem, int nCheckedState);
- BOOL SetCurSel(int nItem);
- BOOL SetEnabled(int nItem, BOOL bEnable);
- DWORD SetExtendedStyleX(DWORD dwNewStyle)
- {
- DWORD dwOldStyle = m_dwExtendedStyleX;
- m_dwExtendedStyleX = dwNewStyle;
- return dwOldStyle;
- }
- BOOL SetHeaderCheckedState(int nSubItem, int nCheckedState);
- int SetItem(const LVITEM* pItem);
- BOOL SetItemData(int nItem, DWORD dwData);
- BOOL SetItemImage(int nItem, int nSubItem, int nImage);
- BOOL SetItemText(int nItem, int nSubItem, LPCTSTR lpszText);
- BOOL SetItemText(int nItem,
- int nSubItem,
- LPCTSTR lpszText,
- COLORREF crText,
- COLORREF crBackground);
- BOOL SetProgress(int nItem,
- int nSubItem,
- BOOL bShowProgressText = TRUE,
- LPCTSTR lpszProgressText = NULL);
- void UpdateProgress(int nItem, int nSubItem, int nPercent);
- void UpdateSubItem(int nItem, int nSubItem);
- #ifndef NO_XLISTCTRL_TOOL_TIPS
- void DeleteAllToolTips();
- BOOL SetItemToolTipText(int nItem, int nSubItem, LPCTSTR lpszToolTipText);
- CString GetItemToolTipText(int nItem, int nSubItem);
- virtual int OnToolHitTest(CPoint point, TOOLINFO * pTI) const;
- #endif
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CXListCtrl)
- public:
- virtual void PreSubclassWindow();
- //}}AFX_VIRTUAL
- // Implementation
- public:
- CXHeaderCtrl m_HeaderCtrl;
- CImageList m_cImageList; // Image list for the header control
- protected:
- void DrawCheckbox(int nItem,
- int nSubItem,
- CDC *pDC,
- COLORREF crText,
- COLORREF crBkgnd,
- CRect& rect,
- XLISTCTRLDATA *pCLD);
- #ifndef DO_NOT_INCLUDE_XCOMBOLIST
- void DrawComboBox(int nItem,
- int nSubItem,
- CDC *pDC,
- COLORREF crText,
- COLORREF crBkgnd,
- CRect& rect,
- XLISTCTRLDATA *pCLD);
- void UnpressComboButton();
- #endif
- int DrawImage(int nItem,
- int nSubItem,
- CDC* pDC,
- COLORREF crText,
- COLORREF crBkgnd,
- CRect rect,
- XLISTCTRLDATA *pXLCD);
- void DrawProgress(int nItem,
- int nSubItem,
- CDC *pDC,
- COLORREF crText,
- COLORREF crBkgnd,
- CRect& rect,
- XLISTCTRLDATA *pCLD);
- void DrawText(int nItem,
- int nSubItem,
- CDC *pDC,
- COLORREF crText,
- COLORREF crBkgnd,
- CRect& rect,
- XLISTCTRLDATA *pCLD);
- void GetDrawColors(int nItem,
- int nSubItem,
- COLORREF& colorText,
- COLORREF& colorBkgnd);
- void SubclassHeaderControl();
- BOOL m_bHeaderIsSubclassed;
- DWORD m_dwExtendedStyleX;
- COLORREF m_cr3DFace;
- COLORREF m_cr3DHighLight;
- COLORREF m_cr3DShadow;
- COLORREF m_crBtnFace;
- COLORREF m_crBtnShadow;
- COLORREF m_crBtnText;
- COLORREF m_crGrayText;
- COLORREF m_crHighLight;
- COLORREF m_crHighLightText;
- COLORREF m_crWindow;
- COLORREF m_crWindowText;
- #ifndef DO_NOT_INCLUDE_XCOMBOLIST
- BOOL m_bComboIsClicked;
- int m_nComboItem;
- int m_nComboSubItem;
- CRect m_rectComboButton;
- CRect m_rectComboList;
- CXComboList * m_pListBox;
- CFont m_ListboxFont;
- BOOL m_bFontIsCreated;
- CString m_strInitialComboString;
- #endif
- // Generated message map functions
- protected:
- //{{AFX_MSG(CXListCtrl)
- afx_msg BOOL OnClick(NMHDR* pNMHDR, LRESULT* pResult);
- afx_msg BOOL OnColumnClick(NMHDR* pNMHDR, LRESULT* pResult);
- afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
- afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
- afx_msg void OnDestroy();
- afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
- afx_msg void OnPaint();
- afx_msg void OnSysColorChange();
- //}}AFX_MSG
- #ifndef DO_NOT_INCLUDE_XCOMBOLIST
- afx_msg void OnTimer(UINT nIDEvent);
- afx_msg LRESULT OnComboEscape(WPARAM, LPARAM);
- afx_msg LRESULT OnComboReturn(WPARAM, LPARAM);
- afx_msg LRESULT OnComboKeydown(WPARAM, LPARAM);
- afx_msg LRESULT OnComboLButtonUp(WPARAM, LPARAM);
- #endif
- #ifndef NO_XLISTCTRL_TOOL_TIPS
- virtual afx_msg BOOL OnToolTipText(UINT id, NMHDR * pNMHDR, LRESULT * pResult);
- #endif
- DECLARE_MESSAGE_MAP()
- };
- /////////////////////////////////////////////////////////////////////////////
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
- #endif //XLISTCTRL_H