EZMenu.h
上传用户:sui0427
上传日期:2007-01-02
资源大小:27k
文件大小:2k
源码类别:

菜单

开发平台:

Visual C++

  1. //////
  2. // EZMenu - Owner drawn menu with Icons & progressbars
  3. // Copyright V.Lakshmi Narasimhan,ezlux@Yahoo.com.
  4. // Feel free to use,modify,twist,turn or even 
  5. // digest the code for any non commercial purposes.
  6. // I would appreciate constructive suggestions & bug reports.
  7. // Please dont delete the above lines.
  8. ///////
  9. #ifndef __EZMENU_H__
  10. #define __EZMENU_H__
  11. #if _MSC_VERSION>=1000
  12. #pragma once
  13. #endif// _MSC_VERSION>=1000
  14. class CEZMenuItemData
  15. {
  16. public:
  17. CEZMenuItemData();
  18. HICON   hItemIconLarge;//Large Icon Handle
  19. HICON   hItemIconSmall;//Small Icon Handle
  20.     CString strItemText;//Menu string
  21. BOOL    bChecked;//Is item checked?
  22. BOOL    bSeperator;
  23. //Why do you need an Owner drawn menu to draw a **seperator**?
  24. BOOL    bProgress;//Progressbar needed?
  25. int     nProgress; //if bProgress what is the percentage?
  26. };
  27. //Useful typedef
  28. typedef  CEZMenuItemData*  LPEZMENUITEMDATA;
  29. //Header file for EZMenu Self drawn menu
  30. class CEZMenu :public CMenu
  31. {
  32. public:
  33. CEZMenu();
  34. void InsertOwnerDrawnMenuItem(UINT nID,LPEZMENUITEMDATA lpez,int nPos=0);
  35. void AppendOwnerDrawnItem(UINT nID,LPEZMENUITEMDATA lpez);
  36. void ModifyOwnerDrawnMenuItem(int nPos,UINT nID,int nTotalCheck,LPEZMENUITEMDATA lpez);
  37. void SetTotalItems(int nItems);//necessary. 
  38. void SetMenuBitmap(HBITMAP hBitmap);
  39. void SetExtensionColor(COLORREF clrExtend);
  40. //if bitmap is shorter than menu height
  41. void SetBitmapDimension(CSize sz);
  42.     void SetLargeIcon(BOOL bLarge=FALSE);//Large or Small?
  43.     void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  44. void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);  
  45. ~CEZMenu();
  46. private:
  47. int m_nCount;//temp
  48. int m_nAveHeight;//average height of each menu item
  49. int m_nItems;//No of items
  50. COLORREF m_clrExtend;//extension color
  51. BOOL m_bLargeIcons;
  52. CSize m_szBitmapSize;
  53. CBitmap m_bitmap;
  54. };
  55. #endif //__EZMENU_H__