123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- // XHyperLink.h Version 1.0
- //
- // XHyperLink static control. Will open the default browser with the
- // given URL when the user clicks on the link.
- //
- // Copyright Chris Maunder, 1997-1999 (cmaunder@mail.com)
- // Feel free to use and distribute. May not be sold for profit.
- //
- // 2/29/00 -- P. Shaffer standard font mod.
- //
- ///////////////////////////////////////////////////////////////////////////////
- //
- // Modified by: Hans Dietrich
- // hdietrich2@hotmail.com
- //
- ///////////////////////////////////////////////////////////////////////////////
- #ifndef XHYPERLINK_H
- #define XHYPERLINK_H
- extern UINT WM_XHYPERLINK_CLICKED;
- /////////////////////////////////////////////////////////////////////////////
- // CXHyperLink window
- class CXHyperLink : public CStatic
- {
- // Construction/destruction
- public:
- CXHyperLink();
- virtual ~CXHyperLink();
- public:
- enum UnderLineOptions { ulHover = -1, ulNone = 0, ulAlways = 1};
- // Attributes
- public:
- void SetURL(CString strURL);
- CString GetURL() const
- {
- return m_strURL;
- }
- void EnableURL(BOOL bFlag) { m_bIsURLEnabled = bFlag; }
- BOOL IsURLEnabled() const { return m_bIsURLEnabled; }
- void SetColours(COLORREF crLinkColour,
- COLORREF crVisitedColour,
- COLORREF crHoverColour = -1);
- COLORREF GetLinkColour() const
- {
- return m_crLinkColour;
- }
- COLORREF GetVisitedColour() const
- {
- return m_crVisitedColour;
- }
- COLORREF GetHoverColour() const
- {
- return m_crHoverColour;
- }
- void SetBackgroundColour(COLORREF crBackground);
- COLORREF GetBackgroundColour() const
- {
- return m_crBackground;
- }
- void SetVisited(BOOL bVisited = TRUE);
- BOOL GetVisited() const
- {
- return m_bVisited;
- }
- void SetLinkCursor(HCURSOR hCursor);
- HCURSOR CXHyperLink::GetLinkCursor() const
- {
- return m_hLinkCursor;
- }
- void SetUnderline(int nUnderline = ulHover);
- int GetUnderline() const
- {
- return m_nUnderline;
- }
- void SetAutoSize(BOOL bAutoSize = TRUE);
- BOOL GetAutoSize() const
- {
- return m_bAdjustToFit;
- }
- void SetNotifyParent(BOOL bFlag) { m_bNotifyParent = bFlag; }
- BOOL GetNotifyParent() const { return m_bNotifyParent; }
- void EnableTooltip(BOOL bFlag)
- {
- m_bToolTip = bFlag;
- m_ToolTip.Activate(m_bToolTip);
- }
- BOOL IsTooltipEmabled() const
- {
- return m_bToolTip;
- }
- void SetAlwaysOpenNew(BOOL bFlag)
- {
- m_bAlwaysOpenNew = bFlag;
- }
- BOOL GetAlwaysOpenNew() const
- {
- return m_bAlwaysOpenNew;
- }
- void SetWindowText(LPCTSTR lpszString);
- // Operations
- public:
- static HINSTANCE GotoURL(LPCTSTR url, int showcmd, BOOL bAlwaysOpenNew = FALSE);
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CXHyperLink)
- public:
- virtual BOOL PreTranslateMessage(MSG* pMsg);
- virtual BOOL DestroyWindow();
- protected:
- virtual void PreSubclassWindow();
- //}}AFX_VIRTUAL
- // Implementation
- protected:
- static LONG GetRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata);
- void NotifyParent();
- void PositionWindow();
- void ReportError(int nError);
- void SetDefaultCursor();
- // Protected attributes
- protected:
- COLORREF m_crLinkColour; // Hyperlink colours
- COLORREF m_crVisitedColour;
- COLORREF m_crHoverColour; // Hover colour
- COLORREF m_crBackground; // background color
- CBrush m_Brush; // background brush
- BOOL m_bOverControl; // cursor over control?
- BOOL m_bVisited; // Has it been visited?
- int m_nUnderline; // underline hyperlink?
- BOOL m_bAdjustToFit; // Adjust window size to fit text?
- CString m_strURL; // hyperlink URL
- CFont m_UnderlineFont; // Font for underline display
- CFont m_StdFont; // Standard font
- HCURSOR m_hLinkCursor; // Cursor for hyperlink
- CToolTipCtrl m_ToolTip; // The tooltip
- UINT m_nTimerID;
- BOOL m_bIsURLEnabled; // TRUE = navigate to url
- BOOL m_bNotifyParent; // TRUE = notify parent
- BOOL m_bToolTip; // TRUE = display tooltip
- BOOL m_bAlwaysOpenNew; // TRUE = always open new browser window
- // Generated message map functions
- protected:
- //{{AFX_MSG(CXHyperLink)
- afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
- afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
- afx_msg void OnMouseMove(UINT nFlags, CPoint point);
- afx_msg BOOL OnEraseBkgnd(CDC* pDC);
- //}}AFX_MSG
- afx_msg void OnTimer(UINT nIDEvent);
- afx_msg void OnClicked();
- DECLARE_MESSAGE_MAP()
- };
- /////////////////////////////////////////////////////////////////////////////
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
- #endif //XHYPERLINK_H
|