MFC链接控制包装的问题

时间:2010-10-11 18:33:32

标签: visual-c++ mfc hyperlink

我在自定义对话框中使用了CMFCLinkCtrl,该对话框继承自CDialog。 CMFCLinkCtrl是使用用户在应用程序的另一部分设置的数据动态设置的,因此我必须处理长网址。

有没有办法让链接控件截断对话框中显示的内容并在末尾添加一个椭圆?目前,当控件太长而无法放入对话框或在http://中看到“//”时,控件将换行到下一行。

2 个答案:

答案 0 :(得分:1)

静态控件具有SS_ENDELLIPSIS样式,可以完全符合您的要求,但遗憾的是,这不适用于CMFCLinkCtrl派生的CButton。所以你有两个选择:

  1. 使用SS_ENDELLIPSIS样式的静态控件,但您必须自己设置文本颜色和字体,并处理点击事件并手动打开URL。

  2. 子类CMFCLinkCtrl并添加自定义绘图代码以添加省略号。

答案 1 :(得分:0)

我觉得你运气不好。你必须做casablanca所说的或不用子类化自己截断文本(计算字体大小和链接控制大小)并使用SetWindowText设置它。

您可以使用SizeToContent轻松调整控件的大小以包含整个文本,但我认为这不适合您。