📄 label.cpp
字号:
// RETURNS: Windows API
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
BOOL CLabel::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
if (m_hCursor)
{
::SetCursor(m_hCursor);
return TRUE;
}
return CStatic::OnSetCursor(pWnd, nHitTest, message);
}
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::OnLButtonDown
//
// Description: Called when a link is click on
//
// INPUTS: Windows API
//
// RETURNS: Windows API
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
// NT ALMOND 02072002 1.6 Added Mail support
//////////////////////////////////////////////////////////////////////////
void CLabel::OnLButtonDown(UINT nFlags, CPoint point)
{
if (!m_bNotifyParent) // Fix
{
CString strLink;
GetWindowText(strLink);
if (m_Link == HyperLink)
{
ShellExecute(NULL,_T("open"),m_sLink.IsEmpty() ? strLink : m_sLink,NULL,NULL,SW_SHOWNORMAL);
}
if (m_Link == MailLink)
{
strLink = "mailto:" + strLink;
ShellExecute( NULL, NULL, strLink, NULL, NULL, SW_SHOWNORMAL );
}
}
else
{
// To use notification in parent window
// Respond to a OnNotify in parent and disassemble the message
//
NMHDR nm;
nm.hwndFrom = GetSafeHwnd();
nm.idFrom = GetDlgCtrlID();
nm.code = NM_LINKCLICK;
GetParent()->SendMessage(WM_NOTIFY,nm.idFrom,(LPARAM) &nm);
}
CStatic::OnLButtonDown(nFlags, point);
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// THE FUNCTIONS START HERE :----
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetText
//
// Description: Short cut to set window text - caption - label
//
// INPUTS: Text to use
//
// RETURNS: Reference to this
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26081998 1.0 Origin
// NT ALMOND 02072002 1.6 Crash Fix
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetText(const CString& strText)
{
if(IsWindow(this->GetSafeHwnd()))
{
SetWindowText(strText);
UpdateSurface();
}
return *this;
}
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetTextColor
//
// Description: Sets the text color
//
// INPUTS: True or false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 22/10/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetTextColor(COLORREF crText)
{
m_crText = crText;
UpdateSurface();
return *this;
}
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetFontBold
//
// Description: Sets the font ot bold
//
// INPUTS: True or false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 22/10/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetFontBold(BOOL bBold)
{
m_lf.lfWeight = bBold ? FW_BOLD : FW_NORMAL;
ReconstructFont();
UpdateSurface();
return *this;
}
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetFontUnderline
//
// Description: Sets font underline attribue
//
// INPUTS: True of false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetFontUnderline(BOOL bSet)
{
m_lf.lfUnderline = bSet;
ReconstructFont();
UpdateSurface();
return *this;
}
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetFontItalic
//
// Description: Sets font italic attribute
//
// INPUTS: True of false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetFontItalic(BOOL bSet)
{
m_lf.lfItalic = bSet;
ReconstructFont();
UpdateSurface();
return *this;
}
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetSunken
//
// Description: Sets sunken effect on border
//
// INPUTS: True of false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetSunken(BOOL bSet)
{
if (!bSet)
ModifyStyleEx(WS_EX_STATICEDGE,0,SWP_DRAWFRAME);
else
ModifyStyleEx(0,WS_EX_STATICEDGE,SWP_DRAWFRAME);
return *this;
}
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetBorder
//
// Description: Toggles the border on/off
//
// INPUTS: True of false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetBorder(BOOL bSet)
{
if (!bSet)
ModifyStyle(WS_BORDER,0,SWP_DRAWFRAME);
else
ModifyStyle(0,WS_BORDER,SWP_DRAWFRAME);
return *this;
}
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetFontSize
//
// Description: Sets the font size
//
// INPUTS: True of false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetFontSize(int nSize)
{
CFont cf;
LOGFONT lf;
cf.CreatePointFont(nSize * 10, m_lf.lfFaceName);
cf.GetLogFont(&lf);
m_lf.lfHeight = lf.lfHeight;
m_lf.lfWidth = lf.lfWidth;
// nSize*=-1;
// m_lf.lfHeight = nSize;
ReconstructFont();
UpdateSurface();
return *this;
}
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetBkColor
//
// Description: Sets background color
//
// INPUTS: Colorref of background color
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetBkColor(COLORREF crBkgnd, COLORREF crBkgndHigh , BackFillMode mode)
{
m_crLoColor = crBkgnd;
m_crHiColor = crBkgndHigh;
m_fillmode = mode;
if (m_hBackBrush)
::DeleteObject(m_hBackBrush);
if (m_fillmode == Normal)
m_hBackBrush = ::CreateSolidBrush(crBkgnd);
UpdateSurface();
return *this;
}
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetFontName
//
// Description: Sets the fonts face name
//
// INPUTS: String containing font name
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
// NT ALMOND 15092000 1.5 Support internation windows
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetFontName(const CString& strFont, BYTE byCharSet /* Default = ANSI_CHARSET */)
{
m_lf.lfCharSet = byCharSet;
_tcscpy(m_lf.lfFaceName,strFont);
ReconstructFont();
UpdateSurface();
return *this;
}
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::FlashText
//
// Description: As the function states
//
// INPUTS: True or false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::FlashText(BOOL bActivate)
{
if (m_bTimer)
KillTimer(1);
if (bActivate)
{
m_bState = FALSE;
m_bTimer = TRUE;
SetTimer(1,500,NULL);
m_Type = Text;
}
else
m_Type = None; // Fix
return *this;
}
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::FlashBackground
//
// Description: As the function states
//
// INPUTS: True or false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::FlashBackground(BOOL bActivate)
{
if (m_bTimer)
KillTimer(1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -