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

📄 superlink.cpp

📁 车友管理系统 密码我也不知道 不过可以在源代码里改了 先蒋登陆设为1
💻 CPP
字号:
// SuperLink.cpp : implementation file
//

#include "stdafx.h"
#include "SuperLink.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSuperLink

CSuperLink::CSuperLink()
{
	m_bClicked=FALSE;     
	m_bcaptured=FALSE;

	m_crClicked = RGB(255, 0, 255);
	m_crMoveOn = RGB(255, 0, 0);
	m_crOrdinary = RGB(0, 0, 255);
	m_crText = m_crOrdinary;    

	::GetObject((HFONT)GetStockObject(DEFAULT_GUI_FONT),sizeof(m_lf),&m_lf); 
	m_lf.lfUnderline = TRUE;     
	BOOL bCreated = m_font.CreateFontIndirect(&m_lf); 
	ASSERT(bCreated);

	m_hCursor=NULL;       
}

CSuperLink::CSuperLink(COLORREF crClicked, COLORREF crMoveOn, COLORREF crOordinary)
{
	m_bClicked=FALSE;     
	m_bcaptured=FALSE;

	m_crClicked = crClicked;
	m_crMoveOn = crMoveOn;
	m_crOrdinary = crOordinary;
	m_crText = m_crOrdinary;    

	::GetObject((HFONT)GetStockObject(DEFAULT_GUI_FONT),sizeof(m_lf),&m_lf); 
	m_lf.lfUnderline = TRUE;     
	BOOL bCreated = m_font.CreateFontIndirect(&m_lf); 
	ASSERT(bCreated);

	m_hCursor=NULL;       
}

CSuperLink::~CSuperLink()
{
	m_font.DeleteObject();  
}


BEGIN_MESSAGE_MAP(CSuperLink, CStatic)
	//{{AFX_MSG_MAP(CSuperLink)
	ON_WM_LBUTTONDOWN()
	ON_WM_SETCURSOR()
	ON_WM_MOUSEMOVE()
	ON_WM_CTLCOLOR_REFLECT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSuperLink message handlers

HBRUSH CSuperLink::CtlColor(CDC* pDC, UINT nCtlColor) 
{
	// TODO: Change any attributes of the DC here
	if (CTLCOLOR_STATIC == nCtlColor)
	{
		pDC->SelectObject(&m_font);
		pDC->SetTextColor(m_crText);
		pDC->SetBkMode(TRANSPARENT);
	}
	HBRUSH hBrush = ::CreateSolidBrush(GetSysColor(COLOR_3DFACE)); 
	return hBrush;
}

void CSuperLink::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	m_bClicked=TRUE;         
	m_crText=m_crClicked;  
	RedrawWindow();
	if(m_linktext!="")  
		ShellExecute(NULL, "open", m_linktext, NULL, NULL, SW_SHOWNORMAL);  
	
	CStatic::OnLButtonDown(nFlags, point);
}

BOOL CSuperLink::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	// TODO: Add your message handler code here and/or call default
	if (m_hCursor)
	{
		::SetCursor(m_hCursor);
		return TRUE;
	}
	
	return CStatic::OnSetCursor(pWnd, nHitTest, message);
}

void CSuperLink::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	SetCapture(); 
	POINT mpoint;   
	GetCursorPos(&mpoint);
	CRect rect;
	GetWindowRect(&rect); 
	if(!rect.PtInRect(mpoint))
	{
		m_bcaptured=FALSE;
		ReleaseCapture();
		MouseLeave();
		return;
	} 

	if(m_bcaptured)
		return;
	m_bcaptured=TRUE;
    MouseEnter();
	ReleaseCapture();
	
	CStatic::OnMouseMove(nFlags, point);
}

BOOL CSuperLink::SetLinkAddress(CString strLink)
{
	if(strLink.Find("http")!=-1)
		m_linktext = strLink;
	else if(strLink.Find("@")!=-1)
		m_linktext = "mailto:" + strLink;
	else
	{
		MessageBox("Error: wrong superlink format");
		m_linktext="";
		return FALSE;
	}
	return TRUE;
}

void CSuperLink::MouseLeave(void)
{
	m_crText = m_bClicked ? m_crClicked : m_crOrdinary;
	RedrawWindow();
}

void CSuperLink::MouseEnter(void)
{
	m_crText = m_bClicked ? m_crClicked : m_crMoveOn;
	RedrawWindow();
}

void CSuperLink::SetLinkCursor(HCURSOR hCursor)
{
	m_hCursor = hCursor;
}

void CSuperLink::SetSuperLink(BOOL setlink)
{
	if (setlink)
		ModifyStyle(0,SS_NOTIFY);
	else
		ModifyStyle(SS_NOTIFY,0);
}
/*
使用方法:
在对话框中创建一个CStatic文本对象,设置其ID为ID_SUPERLINK,为其添加变量m_Link,
类型为CStatic,在该对话框的OnInitDialog()函数中调用:
	m_Link.SubclassDlgItem(IDC_SUPERLINK, this);
	m_Link.SetSuperLink(TRUE);
	m_Link.SetLinkCursor(AfxGetApp()->LoadCursor(IDC_CURSOR));
	m_Link.SetLinkAddress("hexuhmn@mail.china.com");
*/

⌨️ 快捷键说明

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