如何让文本、图标等变灰?

解决方案 »

  1.   

    使用DrawStateString、DrawState就可以。以DrawStateString为例:
    Private Declare Function DrawStateString Lib "user32" Alias "DrawStateA" _
       (ByVal hdc As Long, _
       ByVal hBrush As Long, _
       ByVal lpDrawStateProc As Long, _
       ByVal lpString As String, _
       ByVal cbStringLen As Long, _
       ByVal X As Long, _
       ByVal Y As Long, _
       ByVal cX As Long, _
       ByVal cY As Long, _
       ByVal fuFlags As Long) As LongPrivate Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As LongPrivate Sub Command1_Click()    
       Dim hBr As Long   hBr = CreateSolidBrush(&HFF00&)
       DrawStateString Me.hdc, 0, 0, "Normal", Len("Normal"), 25, 4, 50, 13, DST_TEXT Or DSS_NORMAL
       DrawStateString Me.hdc, 0, 0, "Disabled", Len("Disabled"), 75, 4, 50, 13, DST_TEXT Or DSS_DISABLED
       DrawStateString Me.hdc, hBr, 0, "Coloured", Len("Coloured"), 125, 4, 50, 13, DST_TEXT Or DSS_MONO
       DrawStateString Me.hdc, 0, 0, "Dithered", Len("Dithered"), 175, 4, 50, 13, DST_TEXT Or DSS_UNION
    End Sub
      

  2.   

    .Enabled=False不知楼主是不是这个意思?
      

  3.   

    该颜色!使用DrawStateString、DrawState就可以。以DrawStateString为例:
    Private Declare Function DrawStateString Lib "user32" Alias "DrawStateA" _
       (ByVal hdc As Long, _
       ByVal hBrush As Long, _
       ByVal lpDrawStateProc As Long, _
       ByVal lpString As String, _
       ByVal cbStringLen As Long, _
       ByVal X As Long, _
       ByVal Y As Long, _
       ByVal cX As Long, _
       ByVal cY As Long, _
       ByVal fuFlags As Long) As LongPrivate Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As LongPrivate Sub Command1_Click()    
       Dim hBr As Long   hBr = CreateSolidBrush(&HFF00&)
       DrawStateString Me.hdc, 0, 0, "Normal", Len("Normal"), 25, 4, 50, 13, DST_TEXT Or DSS_NORMAL
       DrawStateString Me.hdc, 0, 0, "Disabled", Len("Disabled"), 75, 4, 50, 13, DST_TEXT Or DSS_DISABLED
       DrawStateString Me.hdc, hBr, 0, "Coloured", Len("Coloured"), 125, 4, 50, 13, DST_TEXT Or DSS_MONO
       DrawStateString Me.hdc, 0, 0, "Dithered", Len("Dithered"), 175, 4, 50, 13, DST_TEXT Or DSS_UNION
    End Sub