InPlaceCombo.h
上传用户:htjk88
上传日期:2010-03-27
资源大小:29k
文件大小:3k
源码类别:

ListView/ListBox

开发平台:

Visual C++

  1. /*******************************************************************************
  2. Author : Aravindan Premkumar
  3. Unregistered Copyright 2003 : Aravindan Premkumar
  4. All Rights Reserved
  5. This piece of code does not have any registered copyright and is free to be 
  6. used as necessary. The user is free to modify as per the requirements. As a
  7. fellow developer, all that I expect and request for is to be given the 
  8. credit for intially developing this reusable code by not removing my name as 
  9. the author.
  10. *******************************************************************************/
  11. #if !defined(AFX_INPLACECOMBO_H__2E04D8D9_827F_4FBD_9E87_30AF8C31639D__INCLUDED_)
  12. #define AFX_INPLACECOMBO_H__2E04D8D9_827F_4FBD_9E87_30AF8C31639D__INCLUDED_
  13. #if _MSC_VER > 1000
  14. #pragma once
  15. #endif // _MSC_VER > 1000
  16. class CInPlaceCombo : public CComboBox
  17. {
  18. public:
  19. // Implementation
  20. // Returns the instance of the class
  21. static CInPlaceCombo* GetInstance(); 
  22. // Deletes the instance of the class
  23. static void DeleteInstance(); 
  24. // Creates the Windows combo control and attaches it to the object, if needed and shows the combo ctrl
  25. BOOL ShowComboCtrl(DWORD dwStyle, const CRect& rCellRect, CWnd* pParentWnd, UINT uiResourceID,
  26.    int iRowIndex, int iColumnIndex, CStringList* pDropDownList, CString strCurSelecetion = "", int iCurSel = -1);
  27. // Overrides
  28. // ClassWizard generated virtual function overrides
  29. //{{AFX_VIRTUAL(CInPlaceCombo)
  30. public:
  31. virtual BOOL PreTranslateMessage(MSG* pMsg);
  32. //}}AFX_VIRTUAL
  33. protected:
  34. // Generated message map functions
  35. //{{AFX_MSG(CInPlaceCombo)
  36. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  37. afx_msg void OnKillFocus(CWnd* pNewWnd);
  38. afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  39. afx_msg void OnCloseup();
  40. //}}AFX_MSG
  41. DECLARE_MESSAGE_MAP()
  42. private:
  43. // Implementation
  44. // Constructor
  45. CInPlaceCombo();
  46. // Hide the copy constructor and operator =
  47. CInPlaceCombo (CInPlaceCombo&) {}
  48. operator = (CInPlaceCombo) {}
  49. // Destructor
  50. virtual ~CInPlaceCombo();
  51. // Attributes
  52. // Index of the item in the list control
  53. int m_iRowIndex;
  54. // Index of the subitem in the list control
  55. int m_iColumnIndex;
  56. // To indicate whether ESC key was pressed
  57. BOOL m_bESC;
  58. // Singleton instance
  59. static CInPlaceCombo* m_pInPlaceCombo;
  60. // Previous selected string value in the combo control
  61. CString m_strWindowText;
  62. // List of items to be shown in the drop down
  63. CStringList m_DropDownList;
  64. };
  65. /////////////////////////////////////////////////////////////////////////////
  66. //{{AFX_INSERT_LOCATION}}
  67. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  68. #endif // !defined(AFX_INPLACECOMBO_H__2E04D8D9_827F_4FBD_9E87_30AF8C31639D__INCLUDED_)