GfxPopupMenu.h
上传用户:zslianheng
上传日期:2013-04-03
资源大小:946k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Visual C++

  1. // GfxPopupMenu.h: interface for the CGfxPopupMenu class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_GFXPOPUPMENU_H__F2CEE8B2_014D_11D2_83E4_0000B43382FE__INCLUDED_)
  5. #define AFX_GFXPOPUPMENU_H__F2CEE8B2_014D_11D2_83E4_0000B43382FE__INCLUDED_
  6. #if _MSC_VER >= 1000
  7. #pragma once
  8. #endif // _MSC_VER >= 1000
  9. #include <afxtempl.h>
  10. class CGfxPopupMenu : public CMenu  
  11. {
  12. public:
  13. struct ToolBarData
  14. { // struct for toolbar resource; guess you already know it ;)
  15. WORD wVersion;
  16. WORD wWidth;
  17. WORD wHeight;
  18. WORD wItemCount;
  19. };
  20. struct SpawnItem
  21. {
  22. int iImageIdx;
  23. int iCmd;
  24. char cText[128];
  25. };
  26. struct ImageItem
  27. {
  28. int iImageIdx;
  29. int iCmd;
  30. };
  31. CGfxPopupMenu();
  32. virtual ~CGfxPopupMenu();
  33. HFONT hMenuBoldFont;
  34. bool CreateBoldFont();
  35. HFONT hMenuFont, hGuiFont;
  36. CSize szImage;
  37. int FindImageItem(const int cmd);
  38. SpawnItem * AddSpawnItem(const char * txt, const int cmd);
  39. void AddImageItem(const int idx, WORD cmd);
  40. void RemapMenu(CMenu * pMenu);
  41. CImageList ilList;
  42. CImageList ilOther;
  43. COLORREF crMenuText, crMenuTextSel;
  44. COLORREF cr3dFace, crMenu, crHighlight, cr3dHilight, cr3dShadow, crGrayText;
  45. COLORREF m_clrBtnFace, m_clrBtnHilight, m_clrBtnShadow;
  46. int iSpawnItem;
  47. SpawnItem ** pSpawnItem;
  48. int iImageItem;
  49. ImageItem * pImageItem;
  50. bool LoadToolBarResource(unsigned int resId);
  51. bool AddToolBarResource(unsigned int resId);
  52. void EnableMenuItems(CMenu * pMenu, CWnd * pParent);
  53. virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  54. virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
  55. // @@
  56. void modifyMenu(UINT id, UINT bitmap, BOOL byCmd = TRUE);
  57. void modifyMenu(UINT id, HICON icon);
  58. void appendMenu(UINT id, UINT bitmap, UINT strID);
  59. void appendMenu(UINT id, UINT bitmap, LPCTSTR str);
  60. void setVertBitmap(UINT bitmap);
  61. private:
  62. void modifyMenuInternal(UINT itemId, int imageIndex, BOOL byCmd);
  63. CMap<UINT, UINT, int, int> imageHash;
  64. CMap<HICON, HICON, int, int> bitmapHash;
  65. CBitmap bmVert;
  66. BOOL vertDrawn;
  67. };
  68. #endif // !defined(AFX_GFXPOPUPMENU_H__F2CEE8B2_014D_11D2_83E4_0000B43382FE__INCLUDED_)