现在的位置: 首页 > 综合 > 正文

创建超链接静态控件(概述方法)

2013年10月01日 ⁄ 综合 ⁄ 共 1665字 ⁄ 字号 评论关闭

创建超链接静态控件

步骤 1

       创建一个新类CLinkStatic,设置基类为CStatic。

步骤 2

      为新类添加成员变量

       COLORREF  m_textcr           //文本颜色

       CFont          m_font;             //记录连接控件文本的字体

       LOGFONT     m_lf;                //逻辑字体

       HCURSOR     m_handcur      //手型鼠标句柄

       CBrush         m_brush;          //设置控件画刷

       CString         m_linkurl;         //超链接地址

       BOOL            m_bmouseover  //鼠标是否在连接上,用来设置是否有下划线

       BOOL            m_bLink;           //是否显示为超链接

步骤 3

       添加成员函数

      void SetLink(BOOL bLink);        
      void SetLinkUrl(CString url);
      void SetFontUnderline(BOOL bSet=FALSE);
      void SetTextColor(COLORREF crText);

      void SetFont(int nFont);                                  //设置字体大小                            

     每个成员函数实现过程中都要加上控件重绘命令  RedrawWindow()来实现控件的重绘;

      在SetLinke()函数中,要调用ModifyStyle()函数,是静态控件能够接受和发送消息。

步骤 4

       为新类添加消息响应函数

      WM_MOUSEMOVE          鼠标移动时设置计时器SetTimer(1,10,NULL)

      WM_TIMER                     判断鼠标是否在在控件上,一次来设置m_bmouseover的值

      WM_SETCURSOR           当鼠标在控件上时,载入手型光标

      WM_LBUTTONDOW       鼠标左键按下,如果m_bmouseover为真,执行超链接

      =WM_CTLCOLOR           在其中设置控件的字体,颜色和模式(与WM_CTLCOLOR区别开)这里是关键

步骤 5

        在要是用超链接静态控件的类的头文件中加入静态控件的定义(修改一个控件的ID为IDC_LINKSTATIC之后,才能在WinWizard中设置关联,并且只能设置一个。不知道为什么?)

        之后,会有显示 CLinkStatic        m_static1;

       若有多个超链接标签,可能就需要手动添加,如:CLinkStatic m_static2;

      并且在所要加入的类中的DoDataExchange中加入

                     DDX_Control(pDX, IDC_LINKSTATIC, m_static2);

步骤 6

         在类的实现过程中,调用成员函数实现对连接标签的初始化即可。

 


 

要点:

 1.每个成员函数实现过程中都要加上控件重绘命令  RedrawWindow()来实现控件的重绘;

 2.在SetLinke()函数中,要调用ModifyStyle()函数,是静态控件能够接受和发送消息

 3.使用=WM_CTLCOLOR消息来改变控件的样式,而不能用WM_CTLCOLOR

 4.在实现过程中,可以在WM_CTLCOLOR中使用hbr=pDC->GetStockObject(NULL_BRUSH)来设置控件背景画刷为空,以达到和主窗口背景融合一体的效果。

抱歉!评论已关闭.