mirror of
https://github.com/bobranten/Ext4Fsd.git
synced 2025-10-30 05:18:31 -05:00
line endings conversions
This commit is contained in:
@@ -1,292 +1,292 @@
|
||||
// MyHyperLink.cpp : implementation file
|
||||
//
|
||||
|
||||
// Written By : Renjith.R
|
||||
// Email : renji12renji@m2comsys.com
|
||||
// Details :Derived from MFC CStatic
|
||||
// Date :Nov 25 2002
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "HyperLink.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CMyHyperLink
|
||||
|
||||
CMyHyperLink::CMyHyperLink()
|
||||
{
|
||||
m_sLinkColor = RGB(0, 0 ,255);
|
||||
m_sHoverColor = RGB(255, 0, 0);
|
||||
m_sVisitedColor = RGB(5, 34, 143);
|
||||
|
||||
m_bFireChild = false;
|
||||
m_bMouseOver = false;
|
||||
m_bEnableToolTip = false;
|
||||
m_bVisited = false;
|
||||
|
||||
//Create Tooltip
|
||||
}
|
||||
|
||||
CMyHyperLink::~CMyHyperLink()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CMyHyperLink, CStatic)
|
||||
//{{AFX_MSG_MAP(CMyHyperLink)
|
||||
ON_WM_MOUSEMOVE()
|
||||
ON_WM_SETCURSOR()
|
||||
ON_CONTROL_REFLECT(BN_CLICKED, OnClicked)
|
||||
|
||||
|
||||
ON_WM_CTLCOLOR_REFLECT()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CMyHyperLink message handlers
|
||||
|
||||
//Sets the Link Color
|
||||
void CMyHyperLink::SetLinkColor(COLORREF sLinkColor)
|
||||
{
|
||||
m_sLinkColor = sLinkColor;
|
||||
|
||||
}
|
||||
|
||||
//open the URL by Windows ShellExecute()
|
||||
bool CMyHyperLink::GoToLinkUrl(CString csLink)
|
||||
{
|
||||
|
||||
HINSTANCE hInstance = (HINSTANCE)ShellExecute(NULL, _T("open"), csLink.operator LPCTSTR(), NULL, NULL, 2);
|
||||
|
||||
if ((UINT_PTR)hInstance < HINSTANCE_ERROR){
|
||||
return false;
|
||||
}else
|
||||
return true;
|
||||
}
|
||||
|
||||
//User can Active/Inactive the Tooltip already they set
|
||||
void CMyHyperLink::ActiveToolTip(int nFlag)
|
||||
{
|
||||
if (nFlag)
|
||||
m_bEnableToolTip = true;
|
||||
else
|
||||
m_bEnableToolTip = false;
|
||||
}
|
||||
|
||||
//change The Tooltip text
|
||||
void CMyHyperLink::SetTootTipText(LPCSTR szToolTip)
|
||||
{
|
||||
if (m_bEnableToolTip )
|
||||
{
|
||||
m_ToolTip.UpdateTipText(szToolTip,this,1001);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//The Mouse Move Message
|
||||
void CMyHyperLink::OnMouseMove(UINT nFlags, CPoint point)
|
||||
{
|
||||
CStatic::OnMouseMove(nFlags, point);
|
||||
if (m_bMouseOver)
|
||||
{
|
||||
CRect oRect;
|
||||
GetClientRect(&oRect);
|
||||
|
||||
//check if the mouse is in the rect
|
||||
if (oRect.PtInRect(point) == false)
|
||||
{
|
||||
m_bMouseOver = false;
|
||||
//Release the Mouse capture previously take
|
||||
ReleaseCapture();
|
||||
RedrawWindow();
|
||||
return;
|
||||
}
|
||||
}else
|
||||
{
|
||||
m_bMouseOver = true;
|
||||
RedrawWindow();
|
||||
//capture the mouse
|
||||
SetCapture();
|
||||
}
|
||||
}
|
||||
|
||||
//before Subclassing
|
||||
void CMyHyperLink::PreSubclassWindow()
|
||||
{
|
||||
|
||||
//Enable the Static to send the Window Messages To its parent
|
||||
DWORD dwStyle = GetStyle();
|
||||
SetWindowLongPtr(GetSafeHwnd() ,GWL_STYLE ,dwStyle | SS_NOTIFY);
|
||||
|
||||
char szCurretText[MAX_PATH];
|
||||
GetWindowText(szCurretText, MAX_PATH);
|
||||
if ((szCurretText) == NULL){
|
||||
SetWindowText(m_csLinkText.operator LPCTSTR());
|
||||
}
|
||||
|
||||
LOGFONT sLogFont;
|
||||
GetFont()->GetLogFont(&sLogFont);
|
||||
//Set the Link UnderLined
|
||||
sLogFont.lfUnderline = true;
|
||||
//Set the Font to the Control
|
||||
m_oTextFont.CreateFontIndirect(&sLogFont);
|
||||
this->SetFont(&m_oTextFont, true);
|
||||
|
||||
//Adjust the window
|
||||
//IsValidURL();
|
||||
|
||||
//Set the Cursor Hand
|
||||
//WinHlp32.exe in windows folder ResourceID 106
|
||||
//is a standard window HAND cursor
|
||||
//courtesy www.codeguru.com
|
||||
//you can use a custom Hand cursor resourse also
|
||||
// i added that as a resourse in this project with
|
||||
// ID - IDC_CURSOR_HAND
|
||||
|
||||
char szWindowsDir[MAX_PATH*2];
|
||||
GetWindowsDirectory(szWindowsDir ,MAX_PATH*2);
|
||||
strcat(szWindowsDir,"\\Winhlp32.exe");
|
||||
HMODULE hModule = LoadLibrary(szWindowsDir);
|
||||
|
||||
if (hModule){
|
||||
m_hHyperCursor = ::LoadCursor(hModule, MAKEINTRESOURCE(106));
|
||||
}
|
||||
|
||||
this->SetCursor(m_hHyperCursor);
|
||||
|
||||
//free the module
|
||||
if (hModule)
|
||||
FreeLibrary(hModule);
|
||||
|
||||
CStatic::PreSubclassWindow();
|
||||
this->SetCursor(m_hHyperCursor);
|
||||
|
||||
m_ToolTip.Create(this,TTS_ALWAYSTIP);
|
||||
CRect oRect;
|
||||
GetClientRect(&oRect);
|
||||
m_ToolTip.AddTool(this,"",oRect,1001);
|
||||
m_ToolTip.ShowWindow(SW_HIDE);
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetLinkText(CString csLinkText)
|
||||
{
|
||||
m_csLinkText = csLinkText;
|
||||
this->SetWindowText(csLinkText.operator LPCTSTR());
|
||||
|
||||
}
|
||||
|
||||
BOOL CMyHyperLink::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
m_ToolTip.RelayEvent(pMsg);
|
||||
return CStatic::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
|
||||
BOOL CMyHyperLink::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
|
||||
{
|
||||
|
||||
::SetCursor(m_hHyperCursor);
|
||||
return true;
|
||||
//return CStatic::OnSetCursor(pWnd, nHitTest, message);
|
||||
}
|
||||
|
||||
//////////////////EVENT WILL GET HERE //////////////////////
|
||||
|
||||
|
||||
void CMyHyperLink::OnClicked()
|
||||
{
|
||||
if (m_bFireChild){
|
||||
//Fire the Event to Parent Window
|
||||
CWnd *pParent;
|
||||
pParent = GetParent();
|
||||
int nCtrlID = GetDlgCtrlID();
|
||||
::SendMessage(pParent->m_hWnd, _HYPERLINK_EVENT, (WPARAM)nCtrlID, 0);
|
||||
//::PostMessage(pParent->m_hWnd, __EVENT_ID_, (WPARAM)nCtrlID, 0);
|
||||
|
||||
}else
|
||||
{
|
||||
GoToLinkUrl(m_csUrl);
|
||||
}
|
||||
|
||||
m_bVisited = true;
|
||||
//reddraw the control
|
||||
this->Invalidate(true);
|
||||
}
|
||||
|
||||
HBRUSH CMyHyperLink::CtlColor(CDC* pDC, UINT nCtlColor)
|
||||
{
|
||||
if (m_bMouseOver){
|
||||
if (m_bVisited)
|
||||
pDC->SetTextColor(m_sVisitedColor);
|
||||
else
|
||||
pDC->SetTextColor(m_sHoverColor);
|
||||
}else {
|
||||
if (m_bVisited)
|
||||
pDC->SetTextColor(m_sVisitedColor);
|
||||
else
|
||||
pDC->SetTextColor(m_sLinkColor);
|
||||
}
|
||||
pDC->SetBkMode(TRANSPARENT);
|
||||
return((HBRUSH)GetStockObject(NULL_BRUSH));
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetToolTipTextColor(COLORREF sToolTipText) {
|
||||
m_ToolTip.SetTipTextColor(sToolTipText);
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetToolTipBgColor(COLORREF sToolTipBgColor)
|
||||
{
|
||||
m_ToolTip.SetTipBkColor(sToolTipBgColor);
|
||||
|
||||
}
|
||||
|
||||
CString CMyHyperLink::GetLinkText() {
|
||||
if (m_csLinkText.IsEmpty())
|
||||
return CString("");
|
||||
return m_csLinkText;
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetLinkUrl(CString csUrl) {
|
||||
m_csUrl= csUrl;
|
||||
}
|
||||
|
||||
CString CMyHyperLink::GetLinkUrl() {
|
||||
return m_csUrl;
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetVisitedColor(COLORREF sVisitedColor) {
|
||||
m_sVisitedColor = sVisitedColor ;
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetHoverColor(COLORREF cHoverColor) {
|
||||
m_sHoverColor = cHoverColor;
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetFireChild(int nFlag) {
|
||||
if (nFlag)
|
||||
m_bFireChild = true;
|
||||
else
|
||||
m_bFireChild = false;
|
||||
}
|
||||
|
||||
BOOL CMyHyperLink::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
|
||||
{
|
||||
NMHDR* pMsgHdr;
|
||||
pMsgHdr = (NMHDR*) lParam;
|
||||
|
||||
switch (pMsgHdr->code){
|
||||
case NM_RCLICK:
|
||||
break;
|
||||
default:
|
||||
;
|
||||
}
|
||||
|
||||
return CStatic::OnNotify(wParam, lParam, pResult);
|
||||
}
|
||||
// MyHyperLink.cpp : implementation file
|
||||
//
|
||||
|
||||
// Written By : Renjith.R
|
||||
// Email : renji12renji@m2comsys.com
|
||||
// Details :Derived from MFC CStatic
|
||||
// Date :Nov 25 2002
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "HyperLink.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CMyHyperLink
|
||||
|
||||
CMyHyperLink::CMyHyperLink()
|
||||
{
|
||||
m_sLinkColor = RGB(0, 0 ,255);
|
||||
m_sHoverColor = RGB(255, 0, 0);
|
||||
m_sVisitedColor = RGB(5, 34, 143);
|
||||
|
||||
m_bFireChild = false;
|
||||
m_bMouseOver = false;
|
||||
m_bEnableToolTip = false;
|
||||
m_bVisited = false;
|
||||
|
||||
//Create Tooltip
|
||||
}
|
||||
|
||||
CMyHyperLink::~CMyHyperLink()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CMyHyperLink, CStatic)
|
||||
//{{AFX_MSG_MAP(CMyHyperLink)
|
||||
ON_WM_MOUSEMOVE()
|
||||
ON_WM_SETCURSOR()
|
||||
ON_CONTROL_REFLECT(BN_CLICKED, OnClicked)
|
||||
|
||||
|
||||
ON_WM_CTLCOLOR_REFLECT()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CMyHyperLink message handlers
|
||||
|
||||
//Sets the Link Color
|
||||
void CMyHyperLink::SetLinkColor(COLORREF sLinkColor)
|
||||
{
|
||||
m_sLinkColor = sLinkColor;
|
||||
|
||||
}
|
||||
|
||||
//open the URL by Windows ShellExecute()
|
||||
bool CMyHyperLink::GoToLinkUrl(CString csLink)
|
||||
{
|
||||
|
||||
HINSTANCE hInstance = (HINSTANCE)ShellExecute(NULL, _T("open"), csLink.operator LPCTSTR(), NULL, NULL, 2);
|
||||
|
||||
if ((UINT_PTR)hInstance < HINSTANCE_ERROR){
|
||||
return false;
|
||||
}else
|
||||
return true;
|
||||
}
|
||||
|
||||
//User can Active/Inactive the Tooltip already they set
|
||||
void CMyHyperLink::ActiveToolTip(int nFlag)
|
||||
{
|
||||
if (nFlag)
|
||||
m_bEnableToolTip = true;
|
||||
else
|
||||
m_bEnableToolTip = false;
|
||||
}
|
||||
|
||||
//change The Tooltip text
|
||||
void CMyHyperLink::SetTootTipText(LPCSTR szToolTip)
|
||||
{
|
||||
if (m_bEnableToolTip )
|
||||
{
|
||||
m_ToolTip.UpdateTipText(szToolTip,this,1001);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//The Mouse Move Message
|
||||
void CMyHyperLink::OnMouseMove(UINT nFlags, CPoint point)
|
||||
{
|
||||
CStatic::OnMouseMove(nFlags, point);
|
||||
if (m_bMouseOver)
|
||||
{
|
||||
CRect oRect;
|
||||
GetClientRect(&oRect);
|
||||
|
||||
//check if the mouse is in the rect
|
||||
if (oRect.PtInRect(point) == false)
|
||||
{
|
||||
m_bMouseOver = false;
|
||||
//Release the Mouse capture previously take
|
||||
ReleaseCapture();
|
||||
RedrawWindow();
|
||||
return;
|
||||
}
|
||||
}else
|
||||
{
|
||||
m_bMouseOver = true;
|
||||
RedrawWindow();
|
||||
//capture the mouse
|
||||
SetCapture();
|
||||
}
|
||||
}
|
||||
|
||||
//before Subclassing
|
||||
void CMyHyperLink::PreSubclassWindow()
|
||||
{
|
||||
|
||||
//Enable the Static to send the Window Messages To its parent
|
||||
DWORD dwStyle = GetStyle();
|
||||
SetWindowLongPtr(GetSafeHwnd() ,GWL_STYLE ,dwStyle | SS_NOTIFY);
|
||||
|
||||
char szCurretText[MAX_PATH];
|
||||
GetWindowText(szCurretText, MAX_PATH);
|
||||
if ((szCurretText) == NULL){
|
||||
SetWindowText(m_csLinkText.operator LPCTSTR());
|
||||
}
|
||||
|
||||
LOGFONT sLogFont;
|
||||
GetFont()->GetLogFont(&sLogFont);
|
||||
//Set the Link UnderLined
|
||||
sLogFont.lfUnderline = true;
|
||||
//Set the Font to the Control
|
||||
m_oTextFont.CreateFontIndirect(&sLogFont);
|
||||
this->SetFont(&m_oTextFont, true);
|
||||
|
||||
//Adjust the window
|
||||
//IsValidURL();
|
||||
|
||||
//Set the Cursor Hand
|
||||
//WinHlp32.exe in windows folder ResourceID 106
|
||||
//is a standard window HAND cursor
|
||||
//courtesy www.codeguru.com
|
||||
//you can use a custom Hand cursor resourse also
|
||||
// i added that as a resourse in this project with
|
||||
// ID - IDC_CURSOR_HAND
|
||||
|
||||
char szWindowsDir[MAX_PATH*2];
|
||||
GetWindowsDirectory(szWindowsDir ,MAX_PATH*2);
|
||||
strcat(szWindowsDir,"\\Winhlp32.exe");
|
||||
HMODULE hModule = LoadLibrary(szWindowsDir);
|
||||
|
||||
if (hModule){
|
||||
m_hHyperCursor = ::LoadCursor(hModule, MAKEINTRESOURCE(106));
|
||||
}
|
||||
|
||||
this->SetCursor(m_hHyperCursor);
|
||||
|
||||
//free the module
|
||||
if (hModule)
|
||||
FreeLibrary(hModule);
|
||||
|
||||
CStatic::PreSubclassWindow();
|
||||
this->SetCursor(m_hHyperCursor);
|
||||
|
||||
m_ToolTip.Create(this,TTS_ALWAYSTIP);
|
||||
CRect oRect;
|
||||
GetClientRect(&oRect);
|
||||
m_ToolTip.AddTool(this,"",oRect,1001);
|
||||
m_ToolTip.ShowWindow(SW_HIDE);
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetLinkText(CString csLinkText)
|
||||
{
|
||||
m_csLinkText = csLinkText;
|
||||
this->SetWindowText(csLinkText.operator LPCTSTR());
|
||||
|
||||
}
|
||||
|
||||
BOOL CMyHyperLink::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
m_ToolTip.RelayEvent(pMsg);
|
||||
return CStatic::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
|
||||
BOOL CMyHyperLink::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
|
||||
{
|
||||
|
||||
::SetCursor(m_hHyperCursor);
|
||||
return true;
|
||||
//return CStatic::OnSetCursor(pWnd, nHitTest, message);
|
||||
}
|
||||
|
||||
//////////////////EVENT WILL GET HERE //////////////////////
|
||||
|
||||
|
||||
void CMyHyperLink::OnClicked()
|
||||
{
|
||||
if (m_bFireChild){
|
||||
//Fire the Event to Parent Window
|
||||
CWnd *pParent;
|
||||
pParent = GetParent();
|
||||
int nCtrlID = GetDlgCtrlID();
|
||||
::SendMessage(pParent->m_hWnd, _HYPERLINK_EVENT, (WPARAM)nCtrlID, 0);
|
||||
//::PostMessage(pParent->m_hWnd, __EVENT_ID_, (WPARAM)nCtrlID, 0);
|
||||
|
||||
}else
|
||||
{
|
||||
GoToLinkUrl(m_csUrl);
|
||||
}
|
||||
|
||||
m_bVisited = true;
|
||||
//reddraw the control
|
||||
this->Invalidate(true);
|
||||
}
|
||||
|
||||
HBRUSH CMyHyperLink::CtlColor(CDC* pDC, UINT nCtlColor)
|
||||
{
|
||||
if (m_bMouseOver){
|
||||
if (m_bVisited)
|
||||
pDC->SetTextColor(m_sVisitedColor);
|
||||
else
|
||||
pDC->SetTextColor(m_sHoverColor);
|
||||
}else {
|
||||
if (m_bVisited)
|
||||
pDC->SetTextColor(m_sVisitedColor);
|
||||
else
|
||||
pDC->SetTextColor(m_sLinkColor);
|
||||
}
|
||||
pDC->SetBkMode(TRANSPARENT);
|
||||
return((HBRUSH)GetStockObject(NULL_BRUSH));
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetToolTipTextColor(COLORREF sToolTipText) {
|
||||
m_ToolTip.SetTipTextColor(sToolTipText);
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetToolTipBgColor(COLORREF sToolTipBgColor)
|
||||
{
|
||||
m_ToolTip.SetTipBkColor(sToolTipBgColor);
|
||||
|
||||
}
|
||||
|
||||
CString CMyHyperLink::GetLinkText() {
|
||||
if (m_csLinkText.IsEmpty())
|
||||
return CString("");
|
||||
return m_csLinkText;
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetLinkUrl(CString csUrl) {
|
||||
m_csUrl= csUrl;
|
||||
}
|
||||
|
||||
CString CMyHyperLink::GetLinkUrl() {
|
||||
return m_csUrl;
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetVisitedColor(COLORREF sVisitedColor) {
|
||||
m_sVisitedColor = sVisitedColor ;
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetHoverColor(COLORREF cHoverColor) {
|
||||
m_sHoverColor = cHoverColor;
|
||||
}
|
||||
|
||||
void CMyHyperLink::SetFireChild(int nFlag) {
|
||||
if (nFlag)
|
||||
m_bFireChild = true;
|
||||
else
|
||||
m_bFireChild = false;
|
||||
}
|
||||
|
||||
BOOL CMyHyperLink::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
|
||||
{
|
||||
NMHDR* pMsgHdr;
|
||||
pMsgHdr = (NMHDR*) lParam;
|
||||
|
||||
switch (pMsgHdr->code){
|
||||
case NM_RCLICK:
|
||||
break;
|
||||
default:
|
||||
;
|
||||
}
|
||||
|
||||
return CStatic::OnNotify(wParam, lParam, pResult);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user