StatLink.h
上传用户:dgvc2008
上传日期:2021-01-21
资源大小:65k
文件大小:2k
源码类别:

RichEdit

开发平台:

Visual C++

  1. ////////////////////////////////////////////////////////////////
  2. // VCKBASE -- August 2000
  3. // Compiles with Visual C++ 6.0, runs on Windows 98 and probably NT too.
  4. //
  5. #pragma once
  6. //////////////////
  7. // Simple text hyperlink derived from CString
  8. //
  9. class CHyperlink : public CString {
  10. public:
  11. CHyperlink(LPCTSTR lpLink = NULL) : CString(lpLink) { }
  12. ~CHyperlink() { }
  13. const CHyperlink& operator=(LPCTSTR lpsz) {
  14. CString::operator=(lpsz);
  15. return *this;
  16. }
  17. operator LPCTSTR() {
  18. return CString::operator LPCTSTR(); 
  19. }
  20. virtual HINSTANCE Navigate() {
  21. return IsEmpty() ? NULL :
  22. ShellExecute(0, _T("open"), *this, 0, 0, SW_SHOWNORMAL);
  23. }
  24. };
  25. //////////////////
  26. // CStaticLink implements a static control that's a hyperlink
  27. // to any file on your desktop or web. You can use it in dialog boxes
  28. // to create hyperlinks to web sites. When clicked, opens the file/URL
  29. //
  30. class CStaticLink : public CStatic {
  31. public:
  32. DECLARE_DYNAMIC(CStaticLink)
  33. CStaticLink(LPCTSTR lpText = NULL, BOOL bDeleteOnDestroy=FALSE);
  34. ~CStaticLink() { }
  35. // Hyperlink contains URL/filename. If NULL, I will use the window text.
  36. // (GetWindowText) to get the target.
  37. CHyperlink m_link;
  38. COLORREF m_color;
  39. // Default colors you can change
  40. // These are global, so they're the same for all links.
  41. static COLORREF g_colorUnvisited;
  42. static COLORREF g_colorVisited;
  43. static COLORREF g_colorOver;
  44. // Cursor used when mouse is on a link--you can set, or
  45. // it will default to the standard hand with pointing finger.
  46. // This is global, so it's the same for all links.
  47. static HCURSOR  g_hCursorLink;
  48. protected:
  49. CFont m_font; // underline font for text control
  50. BOOL m_bDeleteOnDestroy; // delete object when window destroyed?
  51.     BOOL            m_bOverControl;     // cursor over control?
  52.     UINT m_nTimerID;
  53. virtual void PostNcDestroy();
  54. // message handlers
  55. DECLARE_MESSAGE_MAP()
  56. afx_msg UINT OnNcHitTest(CPoint point);
  57. afx_msg HBRUSH  CtlColor(CDC* pDC, UINT nCtlColor);
  58. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  59. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  60. afx_msg void OnTimer( UINT nIDEvent );
  61. };