Heim >Backend-Entwicklung >C++ >Wie erstelle ich ein durchscheinendes kreisförmiges Steuerelement mit Text, der andere Steuerelemente nicht überlappt?
Frage
In einem Projekt muss ich ein Kreissteuerelement hinzufügen und Text in der Mitte anzeigen.
Mein Problem ist, dass der Kreis zu klein ist und wenn ich seine Größe ändere, überlappt er die anderen Steuerelemente. Ich möchte, dass der Kreis die gleiche Breite wie das Quadrat hat.
Oder wie macht man den Hintergrund des Steuerelements transparent?
Lösung
Dies ist ein von Control abgeleitetes benutzerdefiniertes Steuerelement, das durchscheinend gemacht werden kann.
Die Schnittstelle ist ein farbiger Kreis, der mehrere Zahlen enthalten kann.
Dieses Steuerelement stellt die folgenden benutzerdefinierten Eigenschaften bereit:
Deckkraft : Der Deckkraftgrad des Kontrollhintergrunds [0, 255]
InnerPadding (innere Polsterung) : Der Abstand zwischen dem inneren Rechteck, das die Kreisgrenze definiert, und der Kontrollgrenze.
FontPadding (Schriftauffüllung) : Der Abstand zwischen dem Text und dem inneren Rechteck.
Erzielen Sie Transparenz, indem Sie CreateParams überschreiben und dann ExStyle |= WS_EX_TRANSPARENT; festlegen.
DieControl.SetStyle()-Methode wird verwendet, um das Steuerverhalten zu ändern. Fügen Sie die folgenden ControlStyles hinzu:
▶ ControlStyles.Opaque: Verhindert, dass der Hintergrund des Steuerelements gezeichnet wird, sodass er nicht vom System verwaltet wird. In Verbindung mit CreateParams wird das Steuerelement durch Festlegen des erweiterten Stils des Steuerelements auf WS_EX_TRANSPARENT vollständig transparent.
▶ ControlStyles.SupportsTransparentBackColor: Das Steuerelement akzeptiert einen Alphawert für seine Hintergrundfarbe. Wenn Sie nicht auch ControlStyles.UserPaint festlegen, wird es nicht zur Simulation von Transparenz verwendet. Wir werden es selbst mit anderen Methoden tun.
Um zu sehen, wie es funktioniert, erstellen Sie eine neue Klassendatei, ersetzen Sie den gesamten Code darin durch diesen Code, behalten Sie den Namespace bei und erstellen Sie das Projekt/die Lösung.
Neue benutzerdefinierte Steuerelemente werden in der Toolbox angezeigt. Ziehen Sie es per Drag & Drop auf das Formular. Ändern Sie die benutzerdefinierten Eigenschaften nach Bedarf.
Visuelle Darstellung der Steuerung:
Hinweis und Haftungsausschluss
Das obige ist der detaillierte Inhalt vonWie erstelle ich ein durchscheinendes kreisförmiges Steuerelement mit Text, der andere Steuerelemente nicht überlappt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!