MFC程序员的WTL指南(6)高级对话框用户界面类
2006-07-22 22:03:25 来源:WEB开发网核心提示: CHyperLinkCHyperLink是一个CWindowImpl派生类,它子类化一个static text控件,MFC程序员的WTL指南(6)高级对话框用户界面类(9),使之变成可点击的超链接,CHyperLink根据用户的IE使用的颜色画链接对象,没有这个诡计,不过向导存在一个BUG
CHyperLink
CHyperLink是一个CWindowImpl派生类,它子类化一个static text控件,使之变成可点击的超链接。CHyperLink根据用户的IE使用的颜色画链接对象,还支持键盘导航。CHyperLink类的构造函数没有参数,下面是其它的公有方法。
CHyperLink methodsCHyperLinkImpl类内含实现一个超链接的全部代码,如果不需要重载它的方法或处理消息的话,你可以直接使用CHyperLink类。
SubclassWindow()BOOL SubclassWindow(HWND hWnd)
重载函数SubclassWindow()完成控件子类化,然后初始化该类保有的内部数据。
Text label managementbool GetLabel(LPTSTR lpstrBuffer, int nLength)
bool SetLabel(LPCTSTR lpstrLabel)
获得或设置控件显示的文字,如果不指定显示文字,控件会显示资源编辑器指定给控件的静态字符串。
Hyperlink managementbool GetHyperLink(LPTSTR lpstrBuffer, int nLength)
bool SetHyperLink(LPCTSTR lpstrLink)
获得或设置控件关联超链接的URL,如果不指定超链接URL,控件会使用显示的文字字符串作为URL。
Navigationbool Navigate()
导航到当前超链接的URL,该URL或者是由SetHyperLink()函数指定的URL,或者就是控件的窗口文字。
Tooltip management没有公开的方法设置工具提示,所以需要直接使用CToolTipCtrl成员m_tip。
下图显示的就是ControlMania2对话框中的超链接控件:
在OnInitDialog()函数中设置URL:
m_wndLink.SetHyperLink ( _T("http://www.codeproject.com/") );
对话框中控件的UI Updating对话框中的的UI updating控制比MFC中简单得多,在MFC中,你需要响应未公开的WM_KICKIDLE消息,处理这个消息并触发控件的updating,在WTL中,没有这个诡计,不过向导存在一个BUG,需要手工添加一行代码解决这个问题。
更多精彩
赞助商链接