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

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. /************************************
  2.   REVISION LOG ENTRY
  3.   Revision By: Mihai Filimon
  4.   Revised on 12/4/98 1:51:42 PM
  5.   Comments: GroupsMenu.cpp: implementation of the CGroupsMenu class.
  6.  ************************************/
  7. #include "stdafx.h"
  8. #include "xpropertieswnd.h"
  9. #include "GroupsMenu.h"
  10. #include "PageListCtrlDesign.h"
  11. #ifdef _DEBUG
  12. #undef THIS_FILE
  13. static char THIS_FILE[]=__FILE__;
  14. #define new DEBUG_NEW
  15. #endif
  16. //////////////////////////////////////////////////////////////////////
  17. // Construction/Destruction
  18. //////////////////////////////////////////////////////////////////////
  19. // Function name : CGroupsMenu::CGroupsMenu
  20. // Description     : 
  21. // Return type : 
  22. CGroupsMenu::CGroupsMenu(CPageListCtrlDesign* pSourceList)
  23. {
  24. SetParent(pSourceList);
  25. }
  26. // Function name : CGroupsMenu::~CGroupsMenu
  27. // Description     : 
  28. // Return type : 
  29. CGroupsMenu::~CGroupsMenu()
  30. {
  31. }
  32. // Function name : CGroupsMenu::SetParent
  33. // Description     : Set a responsabile!
  34. // Return type : void 
  35. // Argument         : CPageListCtrlDesign* pSourceList
  36. void CGroupsMenu::SetParent(CPageListCtrlDesign* pSourceList)
  37. {
  38. m_pSourceList = pSourceList;
  39. }
  40. // Function name : CGroupsMenu::Add2Menu
  41. // Description     : Append all item 
  42. // Return type : void 
  43. // Argument         : CMenu *pMenu
  44. void CGroupsMenu::Add2Menu(CMenu *pMenu)
  45. {
  46. ASSERT (m_pSourceList && ::IsWindow(m_pSourceList->m_hWnd));
  47. int iItem = NULL;
  48. if (LPCTSTR lpszGroup = m_pSourceList->GetFirstGroupName(iItem))
  49. {
  50. DestroyMenu();
  51. m_mapIDs.RemoveAll();
  52. if (CreateMenu())
  53. {
  54. UINT idCommand = m_pSourceList->GetFirstIDFree();
  55. AppendMenu(MF_STRING,  idCommand++ , _T(""));
  56. while (lpszGroup)
  57. {
  58. m_mapIDs[idCommand] = iItem;
  59. AppendMenu(MF_STRING,  idCommand++ , lpszGroup);
  60. lpszGroup = m_pSourceList->GetNextGroupName(iItem);
  61. }
  62. pMenu->AppendMenu(MF_POPUP, (UINT)m_hMenu, _T("Groups"));
  63. }
  64. }
  65. }
  66. // Function name : CGroupsMenu::Get
  67. // Description     : get the name of idCommand
  68. // Return type : CString 
  69. // Argument         : UINT idCommand
  70. int CGroupsMenu::Get(UINT idCommand)
  71. {
  72. int vValue = NULL;
  73. if (idCommand == m_pSourceList->GetFirstIDFree())
  74. return -1;
  75. if (m_mapIDs.Lookup(idCommand, vValue))
  76. return vValue;
  77. return -2;
  78. }