StaticLink.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:3k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /* 
  2.  * Copyright (C) 2003-2005 Gabest
  3.  * http://www.gabest.org
  4.  *
  5.  *  This Program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2, or (at your option)
  8.  *  any later version.
  9.  *   
  10.  *  This Program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13.  *  GNU General Public License for more details.
  14.  *   
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with GNU Make; see the file COPYING.  If not, write to
  17.  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
  18.  *  http://www.gnu.org/copyleft/gpl.html
  19.  *
  20.  */
  21. #pragma once
  22. // CHyperlink
  23. class CHyperlink : public CString { 
  24. public: 
  25.     CHyperlink(LPCTSTR lpLink = NULL) : CString(lpLink) { } 
  26.     ~CHyperlink() { } 
  27.     const CHyperlink& operator=(LPCTSTR lpsz) { 
  28.         CString::operator=(lpsz); 
  29.         return *this; 
  30.     } 
  31.     operator LPCTSTR() { 
  32.         return CString::operator LPCTSTR();  
  33.     } 
  34.     virtual HINSTANCE Navigate() { 
  35.         return IsEmpty() ? NULL : 
  36.             ShellExecute(0, _T("open"), *this, 0, 0, SW_SHOWNORMAL); 
  37.     } 
  38. };
  39. // CStaticLink
  40. class CStaticLink : public CStatic
  41. {
  42. public: 
  43.     DECLARE_DYNAMIC(CStaticLink) 
  44.     CStaticLink(LPCTSTR lpText = NULL, BOOL bDeleteOnDestroy=FALSE); 
  45.     ~CStaticLink() { } 
  46.     // Hyperlink contains URL/filename. If NULL, I will use the window text. 
  47.     // (GetWindowText) to get the target. 
  48.     CHyperlink    m_link; 
  49.     COLORREF        m_color; 
  50.     // Default colors you can change 
  51.     // These are global, so they're the same for all links. 
  52.     static COLORREF g_colorUnvisited; 
  53.     static COLORREF g_colorVisited; 
  54.     // Cursor used when mouse is on a link--you can set, or 
  55.     // it will default to the standard hand with pointing finger. 
  56.     // This is global, so it's the same for all links. 
  57.     static HCURSOR     g_hCursorLink; 
  58. protected: 
  59.     CFont            m_font;                    // underline font for text control 
  60.     BOOL            m_bDeleteOnDestroy;    // delete object when window destroyed? 
  61.     virtual void PostNcDestroy(); 
  62.     // message handlers 
  63.     DECLARE_MESSAGE_MAP() 
  64.     afx_msg LRESULT    OnNcHitTest(CPoint point); 
  65.     afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor); 
  66.     afx_msg void    OnLButtonDown(UINT nFlags, CPoint point); 
  67.     afx_msg BOOL    OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); 
  68. };