Maison >développement back-end >C++ >Comment puis-je démarrer une application WinForms réduite dans la barre d'état système sans aucun problème de visibilité ?
Démarrage d'une application WinForm réduite dans la barre d'état
Créer une application qui se réduit dans la barre d'état à l'aide d'une NotifyIcon est souvent une fonctionnalité pratique. Cependant, démarrer l'application réduite avec une fenêtre masquée peut présenter des défis.
Dans un cas, la réduction de l'application la laisse initialement visible dans la boîte de dialogue Alt-Tab. Résoudre ce problème en modifiant l'option FormBorderStyle en ToolWindow introduit un nouveau problème : la barre de titre de la fenêtre devient brièvement visible au-dessus du menu Démarrer au démarrage.
Pour résoudre ces problèmes, envisagez d'empêcher le formulaire d'apparaître au démarrage. Cela nécessite de remplacer la méthode SetVisibleCore() :
protected override void SetVisibleCore(bool value) { if (!allowVisible) { value = false; if (!this.IsHandleCreated) CreateHandle(); } base.SetVisibleCore(value); }
L'indicateur allowVisible indique si le formulaire doit être visible. En le définissant sur false au démarrage, cela empêche le formulaire de devenir visible même avec WindowState initialement défini sur Minimized.
De plus, remplacez le gestionnaire d'événements OnFormClosing pour gérer la fermeture du formulaire à partir du menu système :
protected override void OnFormClosing(FormClosingEventArgs e) { if (!allowClose) { this.Hide(); e.Cancel = true; } base.OnFormClosing(e); }
Le réglage de allowClose sur false supprime le comportement de fermeture par défaut et masque le formulaire.
Dans le Dans le menu contextuel NotifyIcon, vous pouvez définir des gestionnaires pour les commandes Afficher et Quitter afin de contrôler respectivement la visibilité du formulaire et la fin de l'application.
Cette approche vous permet de démarrer l'application réduite au minimum dans la barre d'état, sans aucun effet secondaire involontaire, laissant NotifyIcon comme composant principal de l'interface utilisateur.
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!