PlayerListCtrl.h
上传用户:tangyu_668
上传日期:2014-02-27
资源大小:678k
文件大小:4k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /* 
  2.  * Copyright (C) 2003-2006 Gabest
  3.  * http://www.gabest.org
  4.  *
  5.  *  This Program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2, or (at your option)
  8.  *  any later version.
  9.  *   
  10.  *  This Program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13.  *  GNU General Public License for more details.
  14.  *   
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with GNU Make; see the file COPYING.  If not, write to
  17.  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
  18.  *  http://www.gnu.org/copyleft/gpl.html
  19.  *
  20.  */
  21. #pragma once
  22. #define LVN_DOLABELEDIT (LVN_FIRST+1)
  23. class CInPlaceEdit : public CEdit
  24. {
  25. private:
  26. int m_iItem;
  27. int m_iSubItem;
  28. CString m_sInitText;
  29. BOOL m_bESC; // To indicate whether ESC key was pressed
  30. public:
  31. CInPlaceEdit(int iItem, int iSubItem, CString sInitText);
  32. virtual ~CInPlaceEdit();
  33. protected:
  34. virtual BOOL PreTranslateMessage(MSG* pMsg);
  35. DECLARE_MESSAGE_MAP()
  36. public:
  37. afx_msg void OnKillFocus(CWnd* pNewWnd);
  38. afx_msg void OnNcDestroy();
  39. afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  40. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  41. };
  42. class CInPlaceComboBox : public CComboBox
  43. {
  44. private:
  45. int m_iItem;
  46. int m_iSubItem;
  47. CAtlList<CString> m_lstItems;
  48. int m_nSel;
  49. BOOL m_bESC; // To indicate whether ESC key was pressed
  50. public:
  51. CInPlaceComboBox(int iItem, int iSubItem, CAtlList<CString>& plstItems, int nSel);
  52. virtual ~CInPlaceComboBox();
  53. protected:
  54. virtual BOOL PreTranslateMessage(MSG* pMsg);
  55. DECLARE_MESSAGE_MAP()
  56. public:
  57. afx_msg void OnKillFocus(CWnd* pNewWnd);
  58. afx_msg void OnNcDestroy();
  59. afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  60. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  61. afx_msg void OnCloseup();
  62. };
  63. class CInPlaceListBox : public CListBox
  64. {
  65. private:
  66. int m_iItem;
  67. int m_iSubItem;
  68. CAtlList<CString> m_lstItems;
  69. int m_nSel;
  70. BOOL m_bESC; // To indicate whether ESC key was pressed
  71. public:
  72. CInPlaceListBox(int iItem, int iSubItem, CAtlList<CString>& plstItems, int nSel);
  73. virtual ~CInPlaceListBox();
  74. protected:
  75. virtual BOOL PreTranslateMessage(MSG* pMsg);
  76. DECLARE_MESSAGE_MAP()
  77. public:
  78. afx_msg void OnKillFocus(CWnd* pNewWnd);
  79. afx_msg void OnNcDestroy();
  80. afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  81. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  82. };
  83. // CPlayerListCtrl
  84. class CPlayerListCtrl : public CListCtrl
  85. {
  86. DECLARE_DYNAMIC(CPlayerListCtrl)
  87. private:
  88. int m_nItemClicked, m_nSubItemClicked;
  89. int m_tStartEditingDelay;
  90. bool PrepareInPlaceControl(int nRow, int nCol, CRect& rect);
  91. public:
  92. CPlayerListCtrl(int tStartEditingDelay = 500);
  93. virtual ~CPlayerListCtrl();
  94. int HitTestEx(CPoint& point, int* col) const;
  95. CImageList* CreateDragImageEx(LPPOINT lpPoint);
  96. int GetBottomIndex() const;
  97. CEdit* ShowInPlaceEdit(int nItem, int nCol);
  98. CComboBox* ShowInPlaceComboBox(int nItem, int nCol, CAtlList<CString>& lstItems, int nSel);
  99. CListBox* ShowInPlaceListBox(int nItem, int nCol, CAtlList<CString>& lstItems, int nSel);
  100. bool m_fInPlaceDirty;
  101. protected:
  102. virtual void PreSubclassWindow();
  103. virtual int OnToolHitTest(CPoint point, TOOLINFO* pTI) const;
  104. DECLARE_MESSAGE_MAP()
  105. public:
  106. afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  107. afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  108. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  109. afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
  110. afx_msg void OnTimer(UINT nIDEvent);
  111. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  112. afx_msg void OnLvnMarqueeBegin(NMHDR* pNMHDR, LRESULT* pResult);
  113. afx_msg void OnLvnInsertitem(NMHDR* pNMHDR, LRESULT* pResult);
  114. afx_msg void OnLvnDeleteitem(NMHDR* pNMHDR, LRESULT* pResult);
  115. afx_msg void OnEnChangeEdit1();
  116. afx_msg void OnCbnDropdownCombo1();
  117. afx_msg void OnCbnSelendokCombo1();
  118. afx_msg void OnLbnSelChangeList1();
  119. afx_msg BOOL OnHdnItemchanging(UINT id, NMHDR* pNMHDR, LRESULT* pResult);
  120. afx_msg BOOL OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult);
  121. };