home *** CD-ROM | disk | FTP | other *** search
/ PC Administrator / spravce.iso / TaskModule / src / ImageMenu.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-09-10  |  1.9 KB  |  68 lines

  1. // ImageMenu.h: interface for the CImageMenu class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4.  
  5. #if !defined(AFX_IMAGEMENU_H__94055FB7_34F7_4C06_B24B_01C7604ACD34__INCLUDED_)
  6. #define AFX_IMAGEMENU_H__94055FB7_34F7_4C06_B24B_01C7604ACD34__INCLUDED_
  7.  
  8. #if _MSC_VER > 1000
  9. #pragma once
  10. #endif // _MSC_VER > 1000
  11.  
  12. #include "Thunk.h"
  13. //#include <string>
  14. #include <vector>
  15.  
  16. using namespace std;
  17.  
  18. class CImageMenu
  19. {
  20.     class CImageMenuItem
  21.     {// begin CImageMenuItem
  22.     public:
  23.         char *m_pName;
  24.         HICON m_hIcon;
  25.         CImageMenu *m_pimSubMenu;
  26.         CImageMenuItem() : m_pName(NULL) , m_hIcon(NULL), m_pimSubMenu(NULL) {}
  27.         Cleanup(void)
  28.         {// begin Cleanup
  29.             if(m_pName)
  30.                 delete []m_pName;
  31.             if(m_hIcon)
  32.                 DestroyIcon(m_hIcon);
  33.             if(m_pimSubMenu)
  34.                 delete m_pimSubMenu;
  35.         }// end Cleanup
  36.     };// end CImageMenuItem
  37. protected:
  38.     virtual LRESULT WndProc(HWND hWnd,UINT nMessage,WPARAM wParam,LPARAM lParam);    // this must be the first declared virtual function
  39.     ThunkData m_Thunk;
  40. public:
  41.     int GetItemCount(void);
  42.     HMENU GetSafeHmenu(void);
  43.     HMENU GetSubMenu(int nIndex);
  44.     HMENU GetCurrentMenu(void);
  45.     int TrackPopupMenu(UINT uFlags, int x, int y, HWND hOwner);
  46.     bool AppendMenu(UINT uIDNewItem,const char *pString, UINT idIcon);
  47.     bool AppendMenu(UINT uIDNewItem,const char *pString, HICON hIcon, UINT nFlags = 0, HANDLE hExtra = NULL);
  48.     bool Init(HWND hWnd);
  49.     CImageMenu();
  50.     virtual ~CImageMenu();
  51. protected:
  52.     HMENU m_hCurrentMenu;
  53.     virtual LRESULT OnDrawItem(WPARAM wParam, LPARAM lParam);
  54.     LRESULT OnMeasureItem(WPARAM wParam, LPARAM lParam);
  55.     LRESULT OnDestroy();
  56.     LRESULT OnMenuSelect(WPARAM wParam,LPARAM lParam);
  57.  
  58.     HMENU m_hMenu;
  59.     HWND m_hWnd;
  60.     HINSTANCE m_hInstance;
  61.     WNDPROC m_wpOldWndProc;
  62.     SIZE m_szExtraSize;
  63.     SIZE m_szImageSize;
  64.     vector <CImageMenuItem> m_vMenuItem;
  65. };
  66.  
  67. #endif // !defined(AFX_IMAGEMENU_H__94055FB7_34F7_4C06_B24B_01C7604ACD34__INCLUDED_)
  68.