以下是引用hahayezhe在2011-12-15 08:32:20的发言:
CHyperLinker 里面怎么过写的
有跟踪过错误原因吗?
CHyperLinker在非动态使用时很正常。
以前我都没有跟踪过程序,都是使用Release模式直接运行测试的,刚切换到Debug模式,去掉CHyperLinker后,结果,调试运行就出错。Release就不会出错。
CHyperLinker.h如下:
程序代码:
#include <list>
using namespace std;
class CHyperLinker : public CStatic
{
struct URLAttr
{
BOOL m_bIsIn;
BOOL m_bVisited;
BOOL m_bAboveControl;
COLORREF m_Color; //无链接文本颜色
CString m_sURL;
CString m_Text;
CRect rect;
};
public:
list <URLAttr> m_UrlAttr;
list <URLAttr>::iterator it;
list <URLAttr>::iterator itMove;
list <URLAttr>::iterator itMove1;
CHyperLinker();
virtual ~CHyperLinker();
public:
COLORREF m_InitColor; //无链接文本颜色
COLORREF m_URLColor; //文本初始颜色
COLORREF m_VisitedColor; //文本被访问过后的颜色
COLORREF m_CoverColor; //鼠标悬浮在文本上方时的颜色
CString m_sURL; // URL或者应用程序的位置
CString m_sOpenURL; // URL或者应用程序的位置
CString m_strCount;//用来计算长度
CFont m_Font; // 设定字体
HCURSOR m_hLinkCursor;// 光标
BOOL m_bUnderLine;//文字下划线
DWORD dwStyle;//样式,存放此Static的对齐方式等
CRect rectCtrl;//控件处在的父窗口样式。
public:
CString strRtn;
COLORREF AddColor(CString Color);
void TransText();
void SetAttribute(COLORREF InitColor=RGB(0,0,0),COLORREF URLColor=RGB(0,0,255),COLORREF VisitedColor=RGB(128,0,128),
COLORREF CoverColor=RGB(125,125,0),BOOL UnderLine=TRUE);
BOOL OpenUsingShellExecute();
//virtual void SetWindowText(LPCTSTR lpszString);
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CHyperLinker)
public:
protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL
protected:
// Generated message map functions
//{{AFX_MSG(CHyperLinker)
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnPaint();
afx_msg LRESULT OnSetText(WPARAM wParam,LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};