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

📄 staticlink.cpp

📁 vc++6.0开发网络典型应用实例导航 1. 本光盘提供了本书中所有的实例源程序文件。 2. 附录文件夹下是Winsock 函数参考以及错误码列表
💻 CPP
字号:
/****************************************************************/
/*																*/
/*  StaticLink.cpp	 											*/
/*																*/
/*  Implementation of the CStaticLink class.					*/
/*																*/
/*  Programmed by Pablo van der Meer							*/
/*  Copyright Pablo Software Solutions 2002						*/
/*	http://www.pablovandermeer.nl								*/
/*																*/
/*  Last updated: July 4, 2003									*/
/*																*/
/****************************************************************/


#include "stdafx.h"
#include "resource.h"
#include "StaticLink.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


CStaticLink::CStaticLink()
{
	m_clrText = RGB(0,0,255);
	m_strURL = "http://www.pablovandermeer.nl";
	m_hCursor = LoadCursor(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDC_FINGER));
}

CStaticLink::~CStaticLink()
{
}


BEGIN_MESSAGE_MAP(CStaticLink, CStatic)
	//{{AFX_MSG_MAP(CStaticLink)
	ON_WM_CTLCOLOR_REFLECT()
	ON_WM_NCHITTEST()
	ON_WM_SETCURSOR()
	ON_WM_LBUTTONDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/********************************************************************/
/*																	*/
/* Function name : CtlColor											*/
/* Description   : Change text color of static control.				*/
/*																	*/
/********************************************************************/
HBRUSH CStaticLink::CtlColor(CDC* pDC, UINT nCtlColor) 
{
    pDC->SetTextColor(m_clrText);
    pDC->SetBkMode(TRANSPARENT);

    // return hollow brush to let parent background color shine through
    return (HBRUSH)::GetStockObject(HOLLOW_BRUSH);
}


/********************************************************************/
/*																	*/
/* Function name : PreSubclassWindow								*/
/* Description   : Called just before the window is subclassed.		*/
/*																	*/
/********************************************************************/
void CStaticLink::PreSubclassWindow() 
{
	// set up font
	LOGFONT lf;
    GetFont()->GetObject(sizeof(lf), &lf);
    lf.lfUnderline = TRUE;
    m_font.CreateFontIndirect(&lf);

	SetFont(&m_font);
	
	CStatic::PreSubclassWindow();
}


/********************************************************************/
/*																	*/
/* Function name : SetURL											*/
/* Description   : Member function to set URL.						*/
/*																	*/
/********************************************************************/
void CStaticLink::SetURL(LPCTSTR lpszURL)
{
	m_strURL = lpszURL;
}


/********************************************************************/
/*																	*/
/* Function name : OnNcHitTest										*/
/* Description   : 'Activate' mouse messages.						*/
/*																	*/
/********************************************************************/
UINT CStaticLink::OnNcHitTest(CPoint point) 
{
	return HTCLIENT;
}


/********************************************************************/
/*																	*/
/* Function name : OnSetCursor										*/
/* Description   : Change default cursor to finger.					*/
/*																	*/
/********************************************************************/
BOOL CStaticLink::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	if (m_hCursor) 
	{
		::SetCursor(m_hCursor);
		return TRUE;
	}	
	return CStatic::OnSetCursor(pWnd, nHitTest, message);
}


/********************************************************************/
/*																	*/
/* Function name : OnLButtonDown									*/
/* Description   : Link has been clicked, launch explorer.			*/
/*																	*/
/********************************************************************/
void CStaticLink::OnLButtonDown(UINT nFlags, CPoint point) 
{
	if (m_strURL.IsEmpty())
	{
		// get it from window text
		GetWindowText(m_strURL);  
	}
 
    // open URL in the browser.
	ShellExecute(NULL, "open", m_strURL, NULL, NULL, SW_SHOWNORMAL);	

	CStatic::OnLButtonDown(nFlags, point);
}

⌨️ 快捷键说明

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