如何重置 Microsoft Heirarchical FlexGrid 的颜色属性?

How to reset color properties of Microsoft Heirarchical FlexGrid?

我在遗留 VB6 应用程序中有一个 MSHFlexgrid,用户想要在其中设置各种颜色。我已经解决了应用用户颜色的问题,但我还需要添加一个重置选项。但是,在尝试以下行时出现溢出错误:

grdUserData.BackColor = vbWindowBackground

相同的代码在我使用过的其他控件上工作正常,但在 MSHFlexGrid 上出错。 vbWindowBackground的实际值为&H80000005-2147483643.

我尝试读取另一个控件的 BackColor 属性,但它具有相同的基础值,因此也会导致相同的错误。

如何获得用于控件的实际 BGR/RGB(或长)值,而不是我假设的预设是运行时查找颜色的一部分?

虽然很容易估计当前 Windows 主题的某些控件的正确颜色是什么,但我需要为当前主题获取正确的颜色,而不管当前主题是什么。

这个怎么样?

Private Declare Function GetSysColor Lib "user32" ( _
    ByVal nIndex As Long) As Long

Private Function BgrColor(ByVal Color As Long) As Long
    If Color >= 0 Then
        BgrColor = Color
    Else
        BgrColor = GetSysColor(Color And &HFFFFFF)
    End If
End Function