MenuSpawn.h
上传用户:lds876
上传日期:2013-05-25
资源大小:567k
文件大小:3k
源码类别:

P2P编程

开发平台:

Visual C++

  1. // MenuSpawn.h: interface for the CMenuSpawn class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_MENUSPAWN_H__BB6F2F01_91FA_11D1_8B78_0000B43382FE__INCLUDED_)
  5. #define AFX_MENUSPAWN_H__BB6F2F01_91FA_11D1_8B78_0000B43382FE__INCLUDED_
  6. #if _MSC_VER >= 1000
  7. #pragma once
  8. #endif // _MSC_VER >= 1000
  9. class CMenuSpawn  
  10. {
  11. public:
  12. struct ToolBarData
  13. { // struct for toolbar resource; guess you already know it ;)
  14. WORD wVersion;
  15. WORD wWidth;
  16. WORD wHeight;
  17. WORD wItemCount;
  18. };
  19. struct SpawnItem
  20. {
  21. int iImageIdx;
  22. int iCmd;
  23. char cText[128];
  24. };
  25. struct ImageItem
  26. {
  27. int iImageIdx;
  28. int iCmd;
  29. };
  30. public:
  31. void RemapMenuEx(CMenu * pMenu);
  32. bool Create(unsigned int bmpId, unsigned int bmpDisabledId, int iCount, ULONG lMenuCmdID[]);
  33. bool IsSpawnMenu(CMenu * pMenu, const int iItem, const bool bByPos);
  34. bool GetMenuItemText(CString &csText, CMenu * pMenu, const int cmd, bool bByPos);
  35. void TransparentBlt(CDC * pDestDc, int x, int y, int w, int h, CBitmap * pBmp, int sx, int sy, COLORREF crTransparent);
  36. void SetBackBitmap(const int iRes, COLORREF crBackColor);
  37. void SetBackBitmap(const int iRes);
  38. void SetTextColor(const COLORREF crNormal, const COLORREF crSelected);
  39. bool FindKeyboardShortcut(UINT nChar, UINT nFlags, CMenu * pMenu, LRESULT &lRes);
  40. bool SetFont(LOGFONT * lf);
  41. CSize szImage;
  42. bool MeasureItem(LPMEASUREITEMSTRUCT lpm);
  43. bool DrawItem(LPDRAWITEMSTRUCT lp);
  44. int FindImageItem(const int cmd);
  45. SpawnItem * AddSpawnItem(const char * txt, const int cmd);
  46. void AddImageItem(const int idx, WORD cmd);
  47. CImageList ilList;
  48. CImageList ilDisabledList;
  49. CImageList ilOther;
  50. static void OnSystemColorChange();
  51. int iSpawnItem;
  52. SpawnItem ** pSpawnItem;
  53. int iImageItem;
  54. ImageItem * pImageItem;
  55. bool bIsPopup;
  56. bool bBackBitmap;
  57. CBitmap bmpBack;
  58. bool LoadToolBarResource(unsigned int resId);
  59. bool AddToolBarResource(unsigned int resId);
  60. void EnableMenuItems(CMenu * pMenu, CWnd * pParent);
  61. CMenuSpawn();
  62. CMenuSpawn(const bool _IsPopup);
  63. virtual ~CMenuSpawn();
  64. enum {eNormalImgCmdID = 1, eUnusedImgCmdID};
  65. protected:
  66. void RemapMenu(CMenu * pMenu);
  67. void Init();
  68. void Clear();
  69. private:
  70. int m_iNormalImgInx;
  71. static HFONT hMenuFont, hGuiFont;
  72. static COLORREF crMenuText, crMenuTextSel;
  73. static COLORREF cr3dFace, crMenu, crHighlight, cr3dHilight, cr3dShadow, crGrayText, crMenuTitle;
  74. static COLORREF m_clrBtnFace, m_clrBtnHilight, m_clrBtnShadow;
  75. static vector<CImageList*> m_vImageList;
  76. };
  77. #endif // !defined(AFX_MENUSPAWN_H__BB6F2F01_91FA_11D1_8B78_0000B43382FE__INCLUDED_)