我发现了一个问题。我无法更改CMFCListCtrl标头中的默认排序箭头。
我在msdn上找到了有关CMFCHeaderCtrl::OnDrawSortArrow的帖子,但没有帮助,因为那里没有示例。

我尝试了一种简单的方法,如何通过CListCtrlCimageList将箭头设置为HDITEM标头,但是这些箭头仅设置在左侧,因为右侧已经具有默认的箭头。

Google对于如何更改CMFCListCTrl上的默认箭头的解决方案一无所获。

请帮我)
谢谢!
PS。请注意,这不是CMFCListCtrl,而我可以很容易地添加箭头。

最佳答案

因为CMFCHeaderCtrl是CMFCListCtrl内部的成员,所以您不能覆盖它。
尝试使用您自己的CMFCHeaderCtrl类派生自己的CMFCListCtrl类,该类将覆盖OnDrawSortHeader OnDrawSortArrow。
覆盖CMFCListCtrl :: InitHeader和子类到您的标头控件类。

如果使用CListCtrl从头开始表单,则可以直接将标头控件子类化。 CMFCListCtrl中的完整内容并不那么复杂,并且很容易实现。取决于您需要的功能。

09-05 22:56