カスタム コントロールのプログレス バーの色を変更しようとしています。以下の sendmessage 関数を使用するなど、かなりの方法を試しました。
<DllImport("User32.Dll")> _ Public Shared Function SendMessage(hwnd As Integer, wMsg As Integer, wParam As Integer, lParam As Integer) As Integer End Function
Public Const PBM_SETBKCOLOR As Integer = &H2001
Public Const PBM_SETBARCOLOR As Integer = &H409
Public Sub SetProgressBackColor(c As Color)
Dim a As Integer = Convert.ToInt32(c.R.ToString())
Dim b As Integer = Convert.ToInt32(c.G.ToString())
Dim d As Integer = Convert.ToInt32(c.B.ToString())
Dim tot As Integer = Convert.ToInt32(ColorTranslator.ToOle(Color.FromArgb(a, b, d)).ToString())
Dim j As Integer = Me.PercentFull.Handle.ToInt32()
SendMessage(j, PBM_SETBKCOLOR, 0, tot)
End Sub
Public Sub SetProgressForeColor(c As Color)
Dim a As Integer = Convert.ToInt32(c.R.ToString())
Dim b As Integer = Convert.ToInt32(c.G.ToString())
Dim d As Integer = Convert.ToInt32(c.B.ToString())
Dim tot As Integer = Convert.ToInt32(ColorTranslator.ToOle(Color.FromArgb(a, b, d)).ToString())
Dim j As Integer = Me.PercentFull.Handle.ToInt32()
SendMessage(j, PBM_SETBARCOLOR, 0, tot)
End Sub
しかし、これは私にとってはうまくいきませんでした。
このコントロールの前色を変更するにはどうすればよいでしょうか? XPスタイルが有効になるため、PercentFull.ForeColorを使用できません。
ありがとう