76 lines
1.7 KiB
C++
76 lines
1.7 KiB
C++
// PopupMenu.h: interface for the CPopupMenu class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_POPUPMENU_H__F2CEE8B2_014D_11D2_83E4_0000B43382FE__INCLUDED_)
|
|
#define AFX_POPUPMENU_H__F2CEE8B2_014D_11D2_83E4_0000B43382FE__INCLUDED_
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
|
|
class CPopupMenu : public CMenu
|
|
{
|
|
public:
|
|
struct ToolBarData
|
|
{
|
|
// struct for toolbar resource; guess you already know it ;)
|
|
WORD wVersion;
|
|
WORD wWidth;
|
|
WORD wHeight;
|
|
WORD wItemCount;
|
|
};
|
|
struct SpawnItem
|
|
{
|
|
int iImageIdx;
|
|
int iCmd;
|
|
TCHAR cText[128];
|
|
};
|
|
struct ImageItem
|
|
{
|
|
int iImageIdx;
|
|
int iCmd;
|
|
};
|
|
|
|
CPopupMenu();
|
|
virtual ~CPopupMenu();
|
|
|
|
HFONT hMenuBoldFont;
|
|
BOOL CreateBoldFont();
|
|
|
|
HFONT hMenuFont, hGuiFont;
|
|
CSize szImage;
|
|
int FindImageItem(const int cmd);
|
|
|
|
SpawnItem* AddSpawnItem(const TCHAR* txt, const int cmd);
|
|
void AddImageItem(const int idx, WORD cmd);
|
|
|
|
void RemapMenu(CMenu* pMenu);
|
|
|
|
CImageList ilList;
|
|
CImageList ilOther;
|
|
|
|
COLORREF crMenuText, crMenuTextSel;
|
|
COLORREF cr3dFace, crMenu, crHighlight, cr3dHilight, cr3dShadow, crGrayText;
|
|
COLORREF m_clrBtnFace, m_clrBtnHilight, m_clrBtnShadow;
|
|
|
|
int iSpawnItem;
|
|
SpawnItem** pSpawnItem;
|
|
|
|
int iImageItem;
|
|
ImageItem* pImageItem;
|
|
|
|
BOOL LoadToolBarResource(UINT resId);
|
|
BOOL AddToolBarResource(UINT resId);
|
|
|
|
void EnableMenuItems(CMenu* pMenu, CWnd* pParent);
|
|
|
|
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
|
|
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
|
|
|
|
private:
|
|
BOOL DrawCheckmark(CDC& dc, const CRect& rc, BOOL bSelected);
|
|
};
|
|
|
|
#endif // !defined(AFX_POPUPMENU_H__F2CEE8B2_014D_11D2_83E4_0000B43382FE__INCLUDED_)
|