|
Crypt Library Demo 1.00
|
#include <HyperlinkStatic.h>
Public Member Functions | |
| CHyperlinkStatic () | |
| virtual | ~CHyperlinkStatic () |
| void | SetHyperlink (CString strHyperlink) |
| void | SetCaption (CString strCaption) |
Protected Member Functions | |
| virtual void | PreSubclassWindow () |
| afx_msg void | OnLButtonDown (UINT nFlags, CPoint point) |
| afx_msg void | OnPaint () |
| afx_msg void | OnDestroy () |
| afx_msg void | OnMouseMove (UINT nFlags, CPoint point) |
| afx_msg LRESULT | OnMouseLeave (WPARAM wParam, LPARAM lParam) |
Private Member Functions | |
| void | CreateFont () |
| void | GetCaptionSize () |
| bool | InCaptionRange (CPoint &point) |
Private Attributes | |
| CString | _strCaption |
| CString | _strHyperlink |
| CFont | _fontCaption |
| CSize | _sizeCaption |
| bool | _bCreateFont |
| bool | _bMouseInControl |
| bool | _bGetCaptionSize |
| HCURSOR | _hHandCursor |
| HCURSOR | _hArrowCursor |
Definition at line 17 of file HyperlinkStatic.h.
| CHyperlinkStatic::CHyperlinkStatic | ( | ) |
Definition at line 16 of file HyperlinkStatic.cpp.
{
_strCaption = _strHyperlink = _T("");
_bMouseInControl = _bCreateFont = _bGetCaptionSize = false;
_hHandCursor = ::LoadCursor(0, MAKEINTRESOURCE(IDC_HAND));
_hArrowCursor = ::LoadCursor(0, MAKEINTRESOURCE(IDC_ARROW));
}
| CHyperlinkStatic::~CHyperlinkStatic | ( | ) | [virtual] |
Definition at line 25 of file HyperlinkStatic.cpp.
{
}
| void CHyperlinkStatic::CreateFont | ( | ) | [private] |
Definition at line 116 of file HyperlinkStatic.cpp.
{
CFont* pFontParent = GetParent()->GetFont();
if ( pFontParent ) {
LOGFONT lf;
pFontParent->GetObject(sizeof(lf), &lf);
lf.lfUnderline = TRUE;
_fontCaption.CreateFontIndirect(&lf);
_bCreateFont = true;
}
}

| void CHyperlinkStatic::GetCaptionSize | ( | ) | [private] |
Definition at line 128 of file HyperlinkStatic.cpp.
{
if (( _bGetCaptionSize == false ) && ( _bCreateFont )) {
CClientDC dc(this);
CFont *pOldFont = dc.SelectObject(&_fontCaption);
_sizeCaption = dc.GetTextExtent(_strCaption);
dc.SelectObject(pOldFont);
_bGetCaptionSize = true;
}
}

| bool CHyperlinkStatic::InCaptionRange | ( | CPoint & | point | ) | [private] |
Definition at line 139 of file HyperlinkStatic.cpp.
{
if ( _bGetCaptionSize == false )
return false;
return (( point.x >= 0 )&&( point.x < _sizeCaption.cx ) &&
( point.y >= 0 )&&( point.y < _sizeCaption.cy ));
}

| void CHyperlinkStatic::OnDestroy | ( | ) | [protected] |
Definition at line 74 of file HyperlinkStatic.cpp.
{
CStatic::OnDestroy();
_fontCaption.DeleteObject();
}
| void CHyperlinkStatic::OnLButtonDown | ( | UINT | nFlags, |
| CPoint | point | ||
| ) | [protected] |
Definition at line 53 of file HyperlinkStatic.cpp.
{
if ( _bGetCaptionSize == false )
GetCaptionSize();
if (InCaptionRange(point))
ShellExecute(0, _T("open"), _strHyperlink, 0, 0, SW_SHOWNORMAL);
CStatic::OnLButtonDown(nFlags, point);
}

| LRESULT CHyperlinkStatic::OnMouseLeave | ( | WPARAM | wParam, |
| LPARAM | lParam | ||
| ) | [protected] |
Definition at line 88 of file HyperlinkStatic.cpp.
{
UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(lParam);
_bMouseInControl = false;
::SetCursor(_hArrowCursor);
return 0;
}
| void CHyperlinkStatic::OnMouseMove | ( | UINT | nFlags, |
| CPoint | point | ||
| ) | [protected] |
Definition at line 97 of file HyperlinkStatic.cpp.
{
if ( _bMouseInControl == false ) {
//Track the mouse leave event
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.hwndTrack = GetSafeHwnd();
tme.dwFlags = TME_LEAVE;
_TrackMouseEvent(&tme);
_bMouseInControl = true;
}
else {
if ( _bGetCaptionSize == false )
GetCaptionSize();
::SetCursor((InCaptionRange(point))?_hHandCursor:_hArrowCursor);
}
CStatic::OnMouseMove(nFlags, point);
}

| void CHyperlinkStatic::OnPaint | ( | ) | [protected] |
Definition at line 62 of file HyperlinkStatic.cpp.
{
if ( _bCreateFont == false )
CreateFont();
CPaintDC dc(this);
CFont *pOldFont = (CFont*)dc.SelectObject(&_fontCaption);
dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(RGB(0,0,255));
dc.TextOut(0, 0, _strCaption);
dc.SelectObject(pOldFont);
}

| void CHyperlinkStatic::PreSubclassWindow | ( | ) | [protected, virtual] |
Definition at line 80 of file HyperlinkStatic.cpp.
{
ModifyStyle(0, SS_NOTIFY, TRUE);
GetWindowText(_strCaption);
_bGetCaptionSize = false;
CStatic::PreSubclassWindow();
}
| void CHyperlinkStatic::SetCaption | ( | CString | strCaption | ) |
Definition at line 47 of file HyperlinkStatic.cpp.
{
_strCaption = strCaption;
_bGetCaptionSize = false;
}
| void CHyperlinkStatic::SetHyperlink | ( | CString | strHyperlink | ) |
Definition at line 42 of file HyperlinkStatic.cpp.
{
_strHyperlink = strHyperlink;
}
bool CHyperlinkStatic::_bCreateFont [private] |
Definition at line 57 of file HyperlinkStatic.h.
bool CHyperlinkStatic::_bGetCaptionSize [private] |
Definition at line 57 of file HyperlinkStatic.h.
bool CHyperlinkStatic::_bMouseInControl [private] |
Definition at line 57 of file HyperlinkStatic.h.
CFont CHyperlinkStatic::_fontCaption [private] |
Definition at line 55 of file HyperlinkStatic.h.
HCURSOR CHyperlinkStatic::_hArrowCursor [private] |
Definition at line 58 of file HyperlinkStatic.h.
HCURSOR CHyperlinkStatic::_hHandCursor [private] |
Definition at line 58 of file HyperlinkStatic.h.
CSize CHyperlinkStatic::_sizeCaption [private] |
Definition at line 56 of file HyperlinkStatic.h.
CString CHyperlinkStatic::_strCaption [private] |
Definition at line 54 of file HyperlinkStatic.h.
CString CHyperlinkStatic::_strHyperlink [private] |
Definition at line 54 of file HyperlinkStatic.h.
1.7.3