Maison > développement back-end > C++ > Comment puis-je obtenir un arrière-plan transparent avec des bords lisses pour un formulaire Windows ?

Comment puis-je obtenir un arrière-plan transparent avec des bords lisses pour un formulaire Windows ?

Patricia Arquette
Libérer: 2025-01-11 08:23:43
original
430 Les gens l'ont consulté

How Can I Achieve a Transparent Background with Smooth Edges for a Windows Form?

Obtenir un arrière-plan transparent avec des bords lisses pour un formulaire Windows peut être délicat. Cet article présente deux solutions efficaces.

Exploiter les fenêtres en couches

Pour les formulaires aux formes complexes, les fenêtres en couches offrent la meilleure solution. Ils rationalisent la composition et la repeinture des fenêtres, ce qui permet d'obtenir un rendu fluide sans le scintillement souvent observé avec les formes complexes. Surtout, ils prennent également en charge la translucidité.

Implémentation de fenêtres en couches

Pour créer une fenêtre en couches dans Windows Forms, utilisez le code de la galerie de codes du SDK Microsoft (lien vers le code si disponible). En étendant la classe PerPixelAlphaForm, vous pouvez utiliser la méthode SelectBitmap pour appliquer votre image PNG transparente.

PerPixelAlphaForm.cs Extrait de code

<code class="language-csharp">public partial class PerPixelAlphaForm : Form
{
    // ... constructor and other methods ...

    public void SelectBitmap(Bitmap bitmap)
    {
        // ... implementation to apply the bitmap ...
    }
}</code>
Copier après la connexion

SplashScreen.cs (Exemple d'utilisation)

<code class="language-csharp">public partial class Form4 : CSWinFormLayeredWindow.PerPixelAlphaForm
{
    // ... constructor and other methods ...
}</code>
Copier après la connexion

Considération importante :

Une approche antérieure impliquait de désactiver la double mise en mémoire tampon et de remplacer OnPaintBackground pour dessiner l'image directement, en évitant la méthode de base. Cependant, cette méthode souffrait d’un inconvénient majeur : bien que statique, la transparence fonctionnait parfaitement. Mais le déplacement du formulaire ou la modification de la fenêtre sous-jacente entraînait des artefacts visuels et un échec de mise à jour correcte. La méthode de fenêtre en couches présentée ici surmonte cette limitation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal