MyMenu.h
上传用户:jzscgs158
上传日期:2022-05-25
资源大小:8709k
文件大小:2k
源码类别:

百货/超市行业

开发平台:

Visual C++

  1. //完成对菜单的重绘
  2. //背景的掩码为RGB(192,192,192)
  3. //------------------------------------------------设计人:牛文平
  4. //////////////////////////////////////////////////////////////////////
  5. #if !defined(AFX_MYCOOLMENU_H__061B4615_4569_4278_9F86_6DFF6FCEA45F__INCLUDED_)
  6. #define AFX_MYCOOLMENU_H__061B4615_4569_4278_9F86_6DFF6FCEA45F__INCLUDED_
  7. #if _MSC_VER > 1000
  8. #pragma once
  9. #endif // _MSC_VER > 1000
  10. #ifndef Public_Area
  11. #define Public_Area 20 //最左边灰色区域宽度
  12. #endif
  13. #define BACK_COLOR 1
  14. #define BACK_PICTURE 2
  15. class CMenuItemContext//保存菜单的所有有关信息
  16. {
  17. public:
  18. int     nMenuID; 
  19. //-2:顶层菜单条 //-1:弹出菜单
  20. //0:分隔条      //>0:一般的菜单
  21. UINT    U_icon;
  22. CString strText;//menu text 
  23. };
  24. class CMyMenu : public CMenu  
  25. {
  26. public:
  27. //存储ID数组
  28. CUIntArray m_menuIDs;
  29. //存储图标数组
  30. CImageList   m_ImageList;
  31. //顶端颜色
  32. COLORREF m_clrTop;
  33. //顶端图片
  34. BITMAP m_btmTop;
  35. //顶端的设置
  36. //BACK_COLOR 1
  37. //BACK_PICTURE 2
  38. int    m_topStyle;
  39. //顶端的大小
  40. CRect rcMain;
  41. //效果色1
  42. COLORREF m_clrSelectLeft;
  43. //效果色2
  44. COLORREF m_clrSelectRight;
  45. //文本色
  46. COLORREF m_clrText;
  47. //顶端背景画刷
  48. CBrush m_backbrush;
  49. CMyMenu();
  50. virtual ~CMyMenu();
  51. int GetImageFromToolBar(UINT uToolBarID, CSize sz, CImageList *pImageList,  CUIntArray *uIDArray);
  52. int GetIconIndexByID(UINT uID);
  53. BOOL ChangeMenuStyle(HMENU hMenu, BOOL bTop);
  54. BOOL AttachMenu(HMENU hMenu,UINT uToolBarID,CSize sz);
  55. UINT AddToolBar(UINT uToolBarID, CSize sz);
  56. void DrawBestRect(CDC *pDC, CRect rect, COLORREF cr1,COLORREF cr2, BOOL bHor);
  57. void DrawTop(CDC *pDC,CRect rect,BOOL bSelected);
  58. void DrawBGColor(CDC* pDC, CRect rect, BOOL bSelected);
  59. void DrawIcon(CDC* pDC, CRect rect, UINT uIndex, BOOL IsEnabled);
  60. void DrawText(CDC* pDC, CRect rect, CString sText);
  61. void DrawGray(CDC* pDC, CRect rect, CString sText);
  62. void DrawTopBack(CDC* pDC,CRect rcSourse);
  63. void DrawTopBack(CDC* pDC);
  64. void        SetTopBack(COLORREF clr);
  65. virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);
  66. virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMIS);
  67. virtual     void LoadMenu(UINT nIDResource);
  68. void SetTopBackImage(UINT nIDResource);
  69. };
  70. #endif // !defined(AFX_MYCOOLMENU_H__061B4615_4569_4278_9F86_6DFF6FCEA45F__INCLUDED_)