CMFCLinkCtrl调用SetURL后界面不更新,是否遗漏文档内容?
CMFCLinkCtrl调用SetURL后界面不更新的问题说明
- MFC的
CMFCLinkCtrl控件的显示文本和链接地址是两个完全独立的属性,对应IDE可视化编辑里的Caption和URL选项。 - 官方文档对
SetURL的描述存在误导:文档声称调用该方法会把指定URL设为按钮显示文本,但实际查看MFC源码可知,SetURL仅修改内部存储链接地址的m_strURL变量,不会同步更新控件的显示内容。 - 你之前调用
UpdateWindow、Invalidate无效的原因是:控件的显示文本由窗口文本(通过SetWindowText设置)控制,和m_strURL无直接关联,仅修改链接地址不会触发界面重绘的必要条件。 - 你最终采用的同时调用
SetURL与SetWindowText的方案是完全正确的——前者负责设置点击跳转的链接地址,后者负责设置控件上显示的文本,两者配合才能实现“显示指定URL并绑定对应链接”的效果。 - 这并非你漏看了文档内容,而是MFC官方文档的描述不准确,没有明确区分显示文本和链接地址这两个独立属性,才导致了开发者的误解。
内容的提问来源于stack exchange,提问作者Andrew Truckle
相关产品推荐
相关产品推荐

