设为首页 加入收藏

TOP

MFC程序员的WTL指南之高级界面类(八)
2012-11-04 14:13:07 来源: 作者: 【 】 浏览:1700
Tags:MFC 程序员 WTL 指南 高级 界面
  CTreeViewCtrlEx and CTreeItem

  有两个类使得树控件的使用简化了很多:CTreeItem类封装了HTREEITEM,一个CTreeItem对象含有一个HTREEITEM和一个指向包含这个HTREEITEM的树控件的指针,使你不必每次调用都引用树控件;CTreeViewCtrlEx和CTreeViewCtrl一样,只是它的方法操作CTreeItem而不是HTREEITEM。例如,InsertItem()函数返回一个CTreeItem而不是HTREEITEM,你可以使用CTreeItem操作新添加的item。下面是一个例子:

// Using plain HTREEITEMs:
HTREEITEM hti, hti2;

hti = m_wndTree.InsertItem ( "foo", TVI_ROOT, TVI_LAST );
hti2 = m_wndTree.InsertItem ( "bar", hti, TVI_LAST );
m_wndTree.SetItemData ( hti2, 100 );

// Using CTreeItems:
CTreeItem ti, ti2;

ti = m_wndTreeEx.InsertItem ( "foo", TVI_ROOT, TVI_LAST );
ti2 = ti.AddTail ( "bar", 0 );
ti2.SetData ( 100 );

  CTreeViewCtrl对HTREEITEM的每一个操作,CTreeItem都有与之对应的方法,正像每一个关于HWND的API都有一个CWindow方法与之对应一样。查看ControlMania2的代码可以看到更多的CTreeViewCtrlEx和CTreeItem类的方法的演示。

  CHyperLink

  CHyperLink是一个CWindowImpl派生类,它子类化一个static text控件,使之变成可点击的超链接。CHyperLink根据用户的IE使用的颜色画链接对象,还支持键盘导航。CHyperLink类的构造函数没有参数,下面是其它的公有方法。

  CHyperLink methods

  CHyperLinkImpl类内含实现一个超链接的全部代码,如果不需要重载它的方法或处理消息的话,你可以直接使用CHyperLink类。

SubclassWindow()
BOOL SubclassWindow(HWND hWnd)

  重载函数SubclassWindow()完成控件子类化,然后初始化该类保有的内部数据。

Text label management
bool GetLabel(LPTSTR lpstrBuffer, int nLength)
bool SetLabel(LPCTSTR lpstrLabel)

  获得或设置控件显示的文字,如果不指定显示文字,控件会显示资源编辑器指定给控件的静态字符串。

Hyperlink management
bool GetHyperLink(LPTSTR lpstrBuffer, int nLength)
bool SetHyperLink(LPCTSTR lpstrLink)

  获得或设置控件关联超链接的URL,如果不指定超链接URL,控件会使用显示的文字字符串作为URL。

Navigation
bool Navigate()

  导航到当前超链接的URL,该URL或者是由SetHyperLink()函数指定的URL,或者就是控件的窗口文字。

  Tooltip management

  没有公开的方法设置工具提示,所以需要直接使用CToolTipCtrl成员m_tip。

  下图显示的就是ControlMania2对话框中的超链接控件:


  在OnInitDialog()函数中设置URL:

m_wndLink.SetHyperLink ( _T("http://www.codeproject.com/") );

首页 上一页 5 6 7 8 9 下一页 尾页 8/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇VC下利用OpenGL构造自由型曲线曲面 下一篇Visual C++ MFC 中常用宏的含义

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: