Hi Joe,
Ich habe nun fast alle Varianten durchgespielt aber alles ohne
Erfolg.
Ziel ist es eine Schaltfläche zu erstellen bei der Ich:
- einen Text aufdrucken kann.
- die Farbe des Textes ändern kann
- die Farbe der Schaltfläche ändern kann
- einen Rechtsklick und einen links klick unterscheiden kann.
Der Command Button aus den Forms2.0 kann das alles aber er ist
zu groß da er leider die Caption auf sich Zentriert. Der
„alte“ Command Button lässt keine Schriftfarbe zu.
Deine erste Frage dazu hatte sich auf ‚Forms2.0‘ bezogen, dazu kann ich nichts sagen, das kenne ich nicht. Mein VB6.0 weiß nichts von Forms2.0.
Einen Button, den es so wie ich ihn nicht möchte nicht gibt, würde ich mir mit einem Picture bauen. (Und dann eventueell ein OCX daraus basteln, wenn der öfter benötigt wird.
Ein Vorschlag mit einem farbigen Rand:
Option Explicit
Private Sub Form\_Load()
Me.Show
ButtonText "Test", vbRed, vbBlue
End Sub
Private Sub ButtonText(ByVal Txt As String, ByVal Back As Long, ByVal Fore As Long)
Dim Dx As Integer, dy As Integer
Dim Fl As Long, Fd As Long, r As Long, g As Long, b As Long
Picture1.BorderStyle = 0 'kein Rand
Picture1.FontTransparent = True
Picture1.BackColor = Back
Picture1.ForeColor = Fore
Picture1.ScaleMode = 3 'Pixel
b = (Back And CDbl("&hff0000")) \ (256& \* 256&:wink:
g = (Back And CDbl("&h00ff00")) \ 256
r = Back And CDbl("&h0000ff")
Fl = (r Or 159) + (g Or 159) \* 255 + (b Or 159) \* 255 \* 255
Picture1.Line (0, 0)-(1, Picture1.ScaleHeight), Fl, BF
Picture1.Line (0, 0)-(Picture1.ScaleWidth, 1), Fl, BF
Fd = (r / 2) + ((g / 2) \* 255) + ((b / 2) \* 255)
Picture1.Line (0, Picture1.ScaleHeight - 2)-(Picture1.ScaleWidth, Picture1.ScaleHeight), Fd, BF
Picture1.Line (Picture1.ScaleWidth - 2, 0)-(Picture1.ScaleWidth, Picture1.ScaleHeight), Fd, BF
Picture1.CurrentY = Picture1.ScaleHeight \ 2 - Picture1.FontSize \ 2
Picture1.CurrentX = 10
Picture1.Print Txt
End Sub
Gruß Rainer