home *** CD-ROM | disk | FTP | other *** search
- // ImageMenu.h: interface for the CImageMenu class.
- //
- //////////////////////////////////////////////////////////////////////
-
- #if !defined(AFX_IMAGEMENU_H__94055FB7_34F7_4C06_B24B_01C7604ACD34__INCLUDED_)
- #define AFX_IMAGEMENU_H__94055FB7_34F7_4C06_B24B_01C7604ACD34__INCLUDED_
-
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
-
- #include "Thunk.h"
- //#include <string>
- #include <vector>
-
- using namespace std;
-
- class CImageMenu
- {
- class CImageMenuItem
- {// begin CImageMenuItem
- public:
- char *m_pName;
- HICON m_hIcon;
- CImageMenu *m_pimSubMenu;
- CImageMenuItem() : m_pName(NULL) , m_hIcon(NULL), m_pimSubMenu(NULL) {}
- Cleanup(void)
- {// begin Cleanup
- if(m_pName)
- delete []m_pName;
- if(m_hIcon)
- DestroyIcon(m_hIcon);
- if(m_pimSubMenu)
- delete m_pimSubMenu;
- }// end Cleanup
- };// end CImageMenuItem
- protected:
- virtual LRESULT WndProc(HWND hWnd,UINT nMessage,WPARAM wParam,LPARAM lParam); // this must be the first declared virtual function
- ThunkData m_Thunk;
- public:
- int GetItemCount(void);
- HMENU GetSafeHmenu(void);
- HMENU GetSubMenu(int nIndex);
- HMENU GetCurrentMenu(void);
- int TrackPopupMenu(UINT uFlags, int x, int y, HWND hOwner);
- bool AppendMenu(UINT uIDNewItem,const char *pString, UINT idIcon);
- bool AppendMenu(UINT uIDNewItem,const char *pString, HICON hIcon, UINT nFlags = 0, HANDLE hExtra = NULL);
- bool Init(HWND hWnd);
- CImageMenu();
- virtual ~CImageMenu();
- protected:
- HMENU m_hCurrentMenu;
- virtual LRESULT OnDrawItem(WPARAM wParam, LPARAM lParam);
- LRESULT OnMeasureItem(WPARAM wParam, LPARAM lParam);
- LRESULT OnDestroy();
- LRESULT OnMenuSelect(WPARAM wParam,LPARAM lParam);
-
- HMENU m_hMenu;
- HWND m_hWnd;
- HINSTANCE m_hInstance;
- WNDPROC m_wpOldWndProc;
- SIZE m_szExtraSize;
- SIZE m_szImageSize;
- vector <CImageMenuItem> m_vMenuItem;
- };
-
- #endif // !defined(AFX_IMAGEMENU_H__94055FB7_34F7_4C06_B24B_01C7604ACD34__INCLUDED_)
-