2010-10-11 43 views
0

我在继承自CDialog的自定义对话框中使用CMFCLinkCtrl。 CMFCLinkCtrl是使用用户在应用程序的另一部分设置的数据动态设置的,所以我必须处理长时间的URL。MFC链接控件包装的问题

有没有办法让链接控件截断对话框中显示的内容并在最后添加一个椭圆?目前,如果控件太长而无法放入对话框或在http://中看到“//”,则该控件将打包到下一行。

回答

1

静态控件有一个SS_ENDELLIPSIS风格,它完全符合您的要求,但不幸的是,这不适用于从CButton派生的CMFCLinkCtrl。所以,你有两个选择:

  1. 使用与SS_ENDELLIPSIS风格的静态控制,但你必须设置文本颜色和字体自己,并处理单击事件,并手动打开URL。

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

+0

我可能最终将继承CMFCLinkCtrl。但是,有没有办法阻止“//”插入换行符? – csnullptr 2010-10-11 19:13:00

+0

我想控制只是简单地将文本分解成单词并将'/'看作标点符号。如果您继承了控件,则可以完全控制图形,所以不应该有这个问题。 – casablanca 2010-10-11 19:18:02

0

我认为你不走运。你必须做什么卡萨布兰卡说或没有子类自己截断文本(计算字体大小和链接控制大小),并使用SetWindowText设置它。

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