⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 01_9_12_6.asp.html

📁 有用的VC教程,包括编程思想编程技巧程序效率等方面的指导
💻 HTML
📖 第 1 页 / 共 3 页
字号:
// Attributes</td></tr></table><table width=100% ><tr><td class=a14>
public:</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
// Operations</td></tr></table><table width=100% ><tr><td class=a14>
public:</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
// Overrides</td></tr></table><table width=100% ><tr><td class=a14>
	// ClassWizard generated virtual function overrides</td></tr></table><table width=100% ><tr><td class=a14>
	//{{AFX_VIRTUAL(CCustomMenu)</td></tr></table><table width=100% ><tr><td class=a14>
	//}}AFX_VIRTUAL</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
// Implementation</td></tr></table><table width=100% ><tr><td class=a14>
public:</td></tr></table><table width=100% ><tr><td class=a14>
	virtual ~CCustomMenu();</td></tr></table><table width=100% ><tr><td class=a14>
	virtual void DrawItem( LPDRAWITEMSTRUCT);</td></tr></table><table width=100% ><tr><td class=a14>
	virtual void MeasureItem( LPMEASUREITEMSTRUCT );</td></tr></table><table width=100% ><tr><td class=a14>
	void SetTextColor (COLORREF );</td></tr></table><table width=100% ><tr><td class=a14>
	void SetBackColor (COLORREF);</td></tr></table><table width=100% ><tr><td class=a14>
	void SetHighlightColor (COLORREF);</td></tr></table><table width=100% ><tr><td class=a14>
	void SetIconSize (int, int);</td></tr></table><table width=100% ><tr><td class=a14>
	void SetHighlightStyle (HIGHLIGHTSTYLE );</td></tr></table><table width=100% ><tr><td class=a14>
	void SetHighlightTextColor (COLORREF);</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	// Generated message map functions</td></tr></table><table width=100% ><tr><td class=a14>
protected:</td></tr></table><table width=100% ><tr><td class=a14>
	COLORREF m_crText;</td></tr></table><table width=100% ><tr><td class=a14>
	COLORREF m_clrBack;</td></tr></table><table width=100% ><tr><td class=a14>
	COLORREF m_clrText;</td></tr></table><table width=100% ><tr><td class=a14>
	COLORREF m_clrHilight;</td></tr></table><table width=100% ><tr><td class=a14>
	COLORREF m_clrHilightText;</td></tr></table><table width=100% ><tr><td class=a14>
	LOGFONT m_lf;</td></tr></table><table width=100% ><tr><td class=a14>
	CFont m_fontMenu;</td></tr></table><table width=100% ><tr><td class=a14>
	UINT m_iMenuHeight;</td></tr></table><table width=100% ><tr><td class=a14>
	BOOL m_bLBtnDown;</td></tr></table><table width=100% ><tr><td class=a14>
	CBrush m_brBackground,m_brSelect;</td></tr></table><table width=100% ><tr><td class=a14>
	CPen m_penBack;</td></tr></table><table width=100% ><tr><td class=a14>
	int m_iconX,m_iconY;</td></tr></table><table width=100% ><tr><td class=a14>
	HIGHLIGHTSTYLE m_hilightStyle;</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	//{{AFX_MSG(CCustomMenu)</td></tr></table><table width=100% ><tr><td class=a14>
		// NOTE - the ClassWizard will add and remove member functions here.</td></tr></table><table width=100% ><tr><td class=a14>
	//}}AFX_MSG</td></tr></table><table width=100% ><tr><td class=a14>
};</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
///////////////////////////////////////////////////////////////////////////</td></tr></table><table width=100% ><tr><td class=a14>
//</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
//{{AFX_INSERT_LOCATION}}</td></tr></table><table width=100% ><tr><td class=a14>
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
#endif //!defined(AFX_CUSTOMMENU_H__FE5B01C3_1E02_11D1_B87A_0060979CDF6D__INCLUDED_)</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
//*************************************************************************</td></tr></table><table width=100% ><tr><td class=a14>
// CustomMenu.cpp : implementation file</td></tr></table><table width=100% ><tr><td class=a14>
//</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
#include "stdafx.h"</td></tr></table><table width=100% ><tr><td class=a14>
#include "CustomMenu.h"</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
#ifdef _DEBUG</td></tr></table><table width=100% ><tr><td class=a14>
#define new DEBUG_NEW</td></tr></table><table width=100% ><tr><td class=a14>
#undef THIS_FILE</td></tr></table><table width=100% ><tr><td class=a14>
static char THIS_FILE[] = __FILE__;</td></tr></table><table width=100% ><tr><td class=a14>
#endif</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
///////////////////////////////////////////////////////////////////////////</td></tr></table><table width=100% ><tr><td class=a14>
//</td></tr></table><table width=100% ><tr><td class=a14>
// CCustomMenu</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
CCustomMenu::CCustomMenu()</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
	m_clrText =  GetSysColor (COLOR_MENUTEXT);</td></tr></table><table width=100% ><tr><td class=a14>
	m_clrBack = GetSysColor (COLOR_MENU);</td></tr></table><table width=100% ><tr><td class=a14>
	m_brBackground.CreateSolidBrush (m_clrBack);</td></tr></table><table width=100% ><tr><td class=a14>
	m_penBack.CreatePen (PS_SOLID,0,m_clrBack);</td></tr></table><table width=100% ><tr><td class=a14>
	m_crText = m_clrText;</td></tr></table><table width=100% ><tr><td class=a14>
	m_bLBtnDown = FALSE;</td></tr></table><table width=100% ><tr><td class=a14>
	m_iconX =		GetSystemMetrics ( SM_CXMENUCHECK);</td></tr></table><table width=100% ><tr><td class=a14>
	m_iconY =		GetSystemMetrics (SM_CYMENUCHECK );</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	m_clrHilight = GetSysColor (COLOR_HIGHLIGHT);</td></tr></table><table width=100% ><tr><td class=a14>
	m_brSelect.CreateSolidBrush (m_clrHilight);</td></tr></table><table width=100% ><tr><td class=a14>
	m_clrHilightText = GetSysColor (COLOR_HIGHLIGHTTEXT);</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	ZeroMemory ((PVOID) &m_lf,sizeof (LOGFONT));</td></tr></table><table width=100% ><tr><td class=a14>
	NONCLIENTMETRICS nm;</td></tr></table><table width=100% ><tr><td class=a14>
	nm.cbSize = sizeof (NONCLIENTMETRICS);</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	//Get the system metrics for the Captionfromhere</td></tr></table><table width=100% ><tr><td class=a14>
	VERIFY (SystemParametersInfo (SPI_GETNONCLIENTMETRICS,0,&nm,0)); </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	m_lf =  nm.lfMenuFont;</td></tr></table><table width=100% ><tr><td class=a14>
	m_iMenuHeight = nm.iMenuHeight;</td></tr></table><table width=100% ><tr><td class=a14>
	m_fontMenu.CreateFontIndirect (&m_lf);</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
CCustomMenu::~CCustomMenu()</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
	if ((HBRUSH) m_brBackground != NULL)</td></tr></table><table width=100% ><tr><td class=a14>
		m_brBackground.DeleteObject ();</td></tr></table><table width=100% ><tr><td class=a14>
	if ((HFONT)m_fontMenu !=NULL)</td></tr></table><table width=100% ><tr><td class=a14>
		m_fontMenu.DeleteObject ();</td></tr></table><table width=100% ><tr><td class=a14>
	if ((HBRUSH)m_brSelect != NULL)</td></tr></table><table width=100% ><tr><td class=a14>
		 m_brSelect.DeleteObject ();</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
///////////////////////////////////////////////////////////////////////////</td></tr></table><table width=100% ><tr><td class=a14>
//</td></tr></table><table width=100% ><tr><td class=a14>
// CCustomMenu message handlers</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
void CCustomMenu::DrawItem (LPDRAWITEMSTRUCT lpDIS)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
	ASSERT(lpDIS != NULL);</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	CDC* pDC = CDC::FromHandle(lpDIS->hDC);</td></tr></table><table width=100% ><tr><td class=a14>
	CRect rect;</td></tr></table><table width=100% ><tr><td class=a14>
	HICON hIcon;</td></tr></table><table width=100% ><tr><td class=a14>
	COLORREF crText = m_crText;</td></tr></table><table width=100% ><tr><td class=a14>
	// draw the colored rectangle portion</td></tr></table><table width=100% ><tr><td class=a14>
	rect.CopyRect(&lpDIS->rcItem);</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	// draw the up/down/focused/disabled state</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	UINT action = lpDIS->itemAction;</td></tr></table><table width=100% ><tr><td class=a14>
	UINT state = lpDIS->itemState;</td></tr></table><table width=100% ><tr><td class=a14>
	CString strText;</td></tr></table><table width=100% ><tr><td class=a14>
	LOGFONT lf;</td></tr></table><table width=100% ><tr><td class=a14>
	lf = m_lf;</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	CFont dispFont;</td></tr></table><table width=100% ><tr><td class=a14>
	CFont *pFont;</td></tr></table><table width=100% ><tr><td class=a14>
	//GetWindowText(strText);</td></tr></table><table width=100% ><tr><td class=a14>
	if (lpDIS->itemData != NULL)</td></tr></table><table width=100% ><tr><td class=a14>
	{</td></tr></table><table width=100% ><tr><td class=a14>
		strText = (((MENUDATA*) (lpDIS->itemData))->menuText);</td></tr></table><table width=100% ><tr><td class=a14>
		if ((((MENUDATA *)(lpDIS->itemData))->menuIconNormal) == -1)</td></tr></table><table width=100% ><tr><td class=a14>
			hIcon = NULL;</td></tr></table><table width=100% ><tr><td class=a14>
		else if (state & ODS_SELECTED)</td></tr></table><table width=100% ><tr><td class=a14>
		{</td></tr></table><table width=100% ><tr><td class=a14>
			if ((((MENUDATA *)(lpDIS->itemData))->menuIconSelected) != -1)</td></tr></table><table width=100% ><tr><td class=a14>
				hIcon = AfxGetApp ()->LoadIcon (((MENUDATA *)(lpDIS->itemData))->menuIconSelected);</td></tr></table><table width=100% ><tr><td class=a14>
			else</td></tr></table><table width=100% ><tr><td class=a14>
				hIcon = AfxGetApp()->LoadIcon (((MENUDATA*)(lpDIS->itemData))->menuIconNormal);</td></tr></table><table width=100% ><tr><td class=a14>
		}</td></tr></table><table width=100% ><tr><td class=a14>
		else</td></tr></table><table width=100% ><tr><td class=a14>
			hIcon = AfxGetApp()->LoadIcon (((MENUDATA*)(lpDIS->itemData))->menuIconNormal);</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
		TRACE1 ("Draw for %s\n", strText);</td></tr></table><table width=100% ><tr><td class=a14>
	}</td></tr></table><table width=100% ><tr><td class=a14>
	else</td></tr></table><table width=100% ><tr><td class=a14>
	{</td></tr></table><table width=100% ><tr><td class=a14>
		strText.Empty();</td></tr></table><table width=100% ><tr><td class=a14>
		hIcon = NULL;</td></tr></table><table width=100% ><tr><td class=a14>
	}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	if ( (state & ODS_SELECTED) )</td></tr></table><table width=100% ><tr><td class=a14>
	{</td></tr></table><table width=100% ><tr><td class=a14>
		// draw the down edges</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
		CPen *pOldPen = pDC->SelectObject (&m_penBack);</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
		//You need only Text highlight and thats what you get</td></tr></table><table width=100% ><tr><td class=a14>
		if (m_hilightStyle != Normal)</td></tr></table><table width=100% ><tr><td class=a14>
		{</td></tr></table><table width=100% ><tr><td class=a14>
			pDC->FillRect (rect,&m_brBackground);</td></tr></table><table width=100% ><tr><td class=a14>
		}</td></tr></table><table width=100% ><tr><td class=a14>
		else</td></tr></table><table width=100% ><tr><td class=a14>
		{</td></tr></table><table width=100% ><tr><td class=a14>
			pDC->FillRect (rect,&m_brSelect);</td></tr></table><table width=100% ><tr><td class=a14>
		}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
		pDC->SelectObject (pOldPen);</td></tr></table><table width=100% ><tr><td class=a14>
		pDC->Draw3dRect (rect,GetSysColor (COLOR_3DHILIGHT),GetSysColor(COLOR_3DSHADOW));</td></tr></table><table width=100% ><tr><td class=a14>
		lf.lfWeight = FW_BOLD;</td></tr></table><table width=100% ><tr><td class=a14>
		if ((HFONT)dispFont != NULL)</td></tr></table><table width=100% ><tr><td class=a14>
			dispFont.DeleteObject ();</td></tr></table><table width=100% ><tr><td class=a14>
		dispFont.CreateFontIndirect (&lf);</td></tr></table><table width=100% ><tr><td class=a14>
		crText = m_clrHilightText;</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -