AsControls.cpp
上传用户:yangzi5763
上传日期:2007-01-02
资源大小:239k
文件大小:4k
源码类别:

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. /************************************
  2.   REVISION LOG ENTRY
  3.   Revision By: Mihai Filimon
  4.   Revised on 10/14/98 1:13:00 PM
  5.   Comments: AsControls.cpp: implementation of the CAsControls class.
  6.  ************************************/
  7. #include "stdafx.h"
  8. #include "xpropertieswnd.h"
  9. #include "AsControls.h"
  10. #ifdef _DEBUG
  11. #undef THIS_FILE
  12. static char THIS_FILE[]=__FILE__;
  13. #define new DEBUG_NEW
  14. #endif
  15. //////////////////////////////////////////////////////////////////////
  16. // Construction/Destruction
  17. //////////////////////////////////////////////////////////////////////
  18. // Function name : CAsControls::CAsControls
  19. // Description     : 
  20. // Return type : 
  21. CAsControls::CAsControls()
  22. {
  23. Add(ID_MENUAS_EDIT, _T("Edit")); // See class CControlsWnd_CEdit
  24. Add(ID_MENUAS_COMBOBOX, _T("ComboBox")); // See class CControlsWnd_CComboBox
  25. Add(ID_MENUAS_ADORCOMBOBOX, _T("ADORComboBox"), !PROTECTED); // See class CControlsWnd_CADORComboBox
  26. Add(ID_MENUAS_BOOLCOMBOBOX, _T("BoolComboBox")); // See class CControlsWnd_CBoolComboBox
  27. Add(ID_MENUAS_DATACOMBOBOX, _T("DataComboBox")); // See class CControlsWnd_CDataComboBox
  28. Add(ID_MENUAS_USERCOMBOBOX, _T("UserComboBox")); // See class CControlsWnd_CUserComboBox
  29. Add(ID_MENUAS_SHELLFOLDER, _T("ShellFolder")); // See class CControlsWnd_CShellFolder
  30. Add(ID_MENUAS_COLORCOMBOBOX, _T("ColorComboBox")); // See class CControlsWnd_CColorComboBox
  31. Add(ID_MENUAS_BUTTON, _T("Button")); // See class CControlsWnd_CButton
  32. Add(ID_MENUAS_RETURN, _T("Return")); // See class CControlsWnd_CReturn
  33. Add(ID_MENUAS_LINK, _T("Link")); // See class CControlsWnd_CLink
  34. Add(ID_MENUAS_FONT, _T("Font")); // See class CControlsWnd_CFont
  35. Add(ID_MENUAS_GROUP, _T("Group")); // See class CControlsWnd_CGroup
  36. Add(ID_MENUAS_NCOMBOBOX, _T("NComboBox")); // See class CControlsWnd_CNComboBox
  37. Add(ID_MENUAS_NADORCOMBOBOX, _T("NADORComboBox")); // See class CControlsWnd_CNADORComboBox
  38. }
  39. // Function name : CAsControls::~CAsControls
  40. // Description     : 
  41. // Return type : 
  42. CAsControls::~CAsControls()
  43. {
  44. RemoveAll();
  45. }
  46. // Function name : CAsControls::GetName
  47. // Description     : 
  48. // Return type : LPCTSTR 
  49. // Argument         : UINT idAs
  50. LPCTSTR CAsControls::GetName(UINT idAs)
  51. {
  52. CString* pString = NULL;
  53. if (m_mapControls.Lookup(idAs, pString))
  54. return (LPCTSTR)*pString;
  55. return NULL;
  56. }
  57. // Function name : CAsControls::GetID
  58. // Description     : Get ID as type lpszAS
  59. // Return type : UINT 
  60. // Argument         : LPCTSTR lpszAs
  61. UINT CAsControls::GetID(LPCTSTR lpszAs)
  62. {
  63. CObject* pResult = NULL;
  64. if (m_mapControlsString.Lookup(lpszAs, pResult))
  65. return (UINT)pResult;
  66. return -1;
  67. }
  68. // Function name : CAsControls::Add
  69. // Description     : Add a new control type, if the coresonding item is not grayed
  70. // Return type : void 
  71. // Argument         : UINT id
  72. // Argument         : LPCTSTR lpszAs
  73. void CAsControls::Add(UINT id, LPCTSTR lpszAs, BOOL bEnable)
  74. {
  75. if (bEnable)
  76. {
  77. m_mapControls[id] = new CString(lpszAs);
  78. m_mapControlsString[lpszAs] = (CObject*)id;
  79. }
  80. }
  81. // Function name : CAsControls::RemoveAll
  82. // Description     : Called by destructor
  83. // Return type : void 
  84. void CAsControls::RemoveAll()
  85. {
  86. POSITION pos = m_mapControls.GetStartPosition();
  87. while (pos)
  88. {
  89. UINT key = NULL;
  90. CString* pString = NULL;
  91. m_mapControls.GetNextAssoc(pos, key, pString);
  92. delete pString;
  93. }
  94. m_mapControls.RemoveAll();
  95. }
  96. // Function name : CAsControls::IsGroup
  97. // Description     : 
  98. // Return type : BOOL 
  99. // Argument         : UINT id
  100. BOOL CAsControls::IsGroup(UINT id)
  101. {
  102. return id == ID_MENUAS_GROUP;
  103. }