drawmenudlg.h
来自「《Visual C++视频技术方案宝典》配套光盘」· C头文件 代码 · 共 91 行
H
91 行
// DrawMenuDlg.h : header file
//
#if !defined(AFX_DRAWMENUDLG_H__B5A3322F_5662_4505_9B97_F9B6828AD31A__INCLUDED_)
#define AFX_DRAWMENUDLG_H__B5A3322F_5662_4505_9B97_F9B6828AD31A__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// CDrawMenuDlg dialog
const int MAX_MENUCOUNT = 60,ITEMHEIGHT = 26,ITEMWIDTH= 180; //菜单项数量
/*************************************
CMenuItemInfo结构用于记录菜单项信息
*************************************/
struct CMenuItemInfo
{
CString m_ItemText; //菜单项文本
int m_IconIndex; //菜单项索引
int m_ItemID; //菜单标记 -2顶层菜单,-1弹出式菜单,0分隔条,其他普通菜单
};
class CIconMenu : public CMenu
{
public:
CMenuItemInfo m_ItemLists[MAX_MENUCOUNT]; //菜单项信息
int m_index; //临时索引
int m_iconindex;
CImageList m_imagelist; //存储菜单项图标
CIconMenu();
BOOL ChangeMenuItem(CMenu* m_menu,BOOL m_Toped = FALSE);
BOOL AttatchMenu(HMENU m_hmenu);
void DrawItemText(CDC* m_pdc,LPSTR str,CRect m_rect);
void DrawTopMenu(CDC* m_pdc,CRect m_rect,BOOL m_selected = FALSE); //绘制顶层菜单
void DrawSeparater(CDC* m_pdc,CRect m_rect); //绘制分隔条
void DrawComMenu(CDC* m_pdc,CRect m_rect,COLORREF m_fromcolor,COLORREF m_tocolor, BOOL m_selected = FALSE);
void DrawMenuIcon(CDC* m_pdc,CRect m_rect,int m_icon );
//override memu's viutual method
virtual ~CIconMenu();
virtual void MeasureItem( LPMEASUREITEMSTRUCT lpStruct ); //设置菜单项大小
virtual void DrawItem( LPDRAWITEMSTRUCT lpStruct ); //重绘菜单项
};
class CDrawMenuDlg : public CDialog
{
// Construction
public:
CDrawMenuDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CDrawMenuDlg)
enum { IDD = IDD_DRAWMENU_DIALOG };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDrawMenuDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
CIconMenu m_Menu;
// Generated message map functions
//{{AFX_MSG(CDrawMenuDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
afx_msg void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
virtual void OnOK();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DRAWMENUDLG_H__B5A3322F_5662_4505_9B97_F9B6828AD31A__INCLUDED_)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?