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

时间:2015-05-05 15:11:13

标签: vb6 mshflexgrid

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

grdUserData.BackColor = vbWindowBackground

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

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

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

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

1 个答案:

答案 0 :(得分:1)

这个怎么样?

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