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. // Download by http://www.codefans.net
  28. //存储ID数组
  29. CUIntArray m_menuIDs;
  30. //存储图标数组
  31. CImageList   m_ImageList;
  32. //顶端颜色
  33. COLORREF m_clrTop;
  34. //顶端图片
  35. BITMAP m_btmTop;
  36. //顶端的设置
  37. //BACK_COLOR 1
  38. //BACK_PICTURE 2
  39. int    m_topStyle;
  40. //顶端的大小
  41. CRect rcMain;
  42. //效果色1
  43. COLORREF m_clrSelectLeft;
  44. //效果色2
  45. COLORREF m_clrSelectRight;
  46. //文本色
  47. COLORREF m_clrText;
  48. //顶端背景画刷
  49. CBrush m_backbrush;
  50. CMyMenu();
  51. virtual ~CMyMenu();
  52. int GetImageFromToolBar(UINT uToolBarID, CSize sz, CImageList *pImageList,  CUIntArray *uIDArray);
  53. int GetIconIndexByID(UINT uID);
  54. BOOL ChangeMenuStyle(HMENU hMenu, BOOL bTop);
  55. BOOL AttachMenu(HMENU hMenu,UINT uToolBarID,CSize sz);
  56. UINT AddToolBar(UINT uToolBarID, CSize sz);
  57. void DrawBestRect(CDC *pDC, CRect rect, COLORREF cr1,COLORREF cr2, BOOL bHor);
  58. void DrawTop(CDC *pDC,CRect rect,BOOL bSelected);
  59. void DrawBGColor(CDC* pDC, CRect rect, BOOL bSelected);
  60. void DrawIcon(CDC* pDC, CRect rect, UINT uIndex, BOOL IsEnabled);
  61. void DrawText(CDC* pDC, CRect rect, CString sText);
  62. void DrawGray(CDC* pDC, CRect rect, CString sText);
  63. void DrawTopBack(CDC* pDC,CRect rcSourse);
  64. void DrawTopBack(CDC* pDC);
  65. void        SetTopBack(COLORREF clr);
  66. virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);
  67. virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMIS);
  68. virtual     void LoadMenu(UINT nIDResource);
  69. void SetTopBackImage(UINT nIDResource);
  70. };
  71. #endif // !defined(AFX_MYCOOLMENU_H__061B4615_4569_4278_9F86_6DFF6FCEA45F__INCLUDED_)
  72. // Download by http://www.codefans.net