0

我们正在使用来自 OS 公共控件库的标准 Header 控件。我们需要强制控件刷新仅与一个列标题(项)相关的区域。是否有特殊的 WinAPI 消息,或者我们可以使用的技巧?

4

2 回答 2

4

使用HDM_GETITEMRECT消息获取相关项目的矩形,然后使用InvalidateRect函数刷新它。

于 2013-03-12T11:46:13.780 回答
0

我们使用了以下技巧,因为列标题文本不直接存储在标题中(VB6 代码):

Dim tHI As HD_ITEM
tHI.mask = HDI_TEXT
SendMessage m_hWnd, HDM_SETITEM, lCol, tHI

事实上,我们并没有改变项目,但标题“认为”它发生了,所以实际上我们强制标题重新绘制项目。

注意:在这种情况下会发送 HDN_ITEMCHANGING,因此在使用此技巧时请忽略它。

于 2013-03-14T10:09:56.430 回答