Subversion Repositories libraries.mycontrols

Rev

Blame | Last modification | View Log

// HyperLink.h : header file
//
//
// HyperLink static control. Will open the default browser with the given URL
// when the user clicks on the link.
//
// Copyright Chris Maunder, 1997
// Feel free to use and distribute.

#if !defined(AFX_HYPERLINK_H__D1625061_574B_11D1_ABBA_00A0243D1382__INCLUDED_)
#define AFX_HYPERLINK_H__D1625061_574B_11D1_ABBA_00A0243D1382__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

/////////////////////////////////////////////////////////////////////////////
// CHyperLink window

class CHyperLink : public CStatic
{
// Construction/destruction
public:
    CHyperLink();
    virtual ~CHyperLink();

// Attributes
public:

// Operations
public:

    void SetURL(CString strURL);
    CString GetURL()            { return m_strURL;   }

    void SetColours(COLORREF crLinkColour, COLORREF crVisitedColour);
    COLORREF GetLinkColour()    { return m_crLinkColour; }
    COLORREF GetVisitedColour() { return m_crVisitedColour; }

    void SetVisited(BOOL bVisited = TRUE);
    BOOL GetVisited()           { return m_bVisited; }

    void SetLinkCursor(HCURSOR hCursor) { m_hLinkCursor = hCursor; }

    void SetUnderline(BOOL bUnderline = TRUE);
    BOOL GetUnderline()         { return m_bUnderline; }

    void SetAutoSize(BOOL bAutoSize = TRUE);
    BOOL GetAutoSize()          { return m_bAdjustToFit; }

// Overrides
    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CHyperLink)
    public:
    virtual BOOL PreTranslateMessage(MSG* pMsg);
    protected:
    virtual void PreSubclassWindow();
    //}}AFX_VIRTUAL

// Implementation
protected:
    HINSTANCE GotoURL(LPCTSTR url, int showcmd);
    void ReportError(int nError);
    LONG GetRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata);
    void PositionWindow();

// Protected attributes
protected:
    COLORREF     m_crLinkColour, m_crVisitedColour; //Hyperlink colours
    BOOL         m_bVisited; //Has it been visited?
    BOOL           m_bUnderline; //underline hyperlink?
    BOOL           m_bAdjustToFit; //Adjust window size to fit text?
    CString      m_strURL; //hyperlink URL
    CFont          m_Font; //Underline font if necessary
    HCURSOR      m_hLinkCursor; //Cursor for hyperlink
    CToolTipCtrl m_ToolTip; //The tooltip

    // Generated message map functions
protected:
    //{{AFX_MSG(CHyperLink)
    afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
    afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
    //}}AFX_MSG
    afx_msg void OnClicked();
    DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_HYPERLINK_H__D1625061_574B_11D1_ABBA_00A0243D1382__INCLUDED_)