Maison > développement back-end > C++ > Comment garantir qu'une application WinForm démarre en taille réduite dans la barre d'état système sans s'afficher de manière inattendue ?

Comment garantir qu'une application WinForm démarre en taille réduite dans la barre d'état système sans s'afficher de manière inattendue ?

DDD
Libérer: 2025-01-06 02:03:41
original
928 Les gens l'ont consulté

How to Ensure a WinForm App Starts Minimized to the System Tray Without Showing Unexpectedly?

Réduire une application WinForm dans la barre d'état au démarrage

Problème

Création d'une application WinForm ce qui peut être réduit au plateau est simple. Cependant, les tentatives de démarrage de l'application dans un état réduit entraînent l'apparition de l'application dans la boîte de dialogue Alt-Tab avec sa barre de titre parfois visible.

Solution

Pour empêcher le application d'être visible au démarrage, la méthode SetVisibleCore() peut être remplacée. Cela implique :

protected override void SetVisibleCore(bool value) {
  if (!allowVisible) {
    value = false;
    if (!this.IsHandleCreated) CreateHandle();
  }
  base.SetVisibleCore(value);
}
Copier après la connexion

Ici,allowVisible est un indicateur défini pour indiquer quand l'application doit être visible (par exemple, lorsque l'utilisateur clique sur "Afficher" dans le menu contextuel NotifyIcon). Si allowVisible est false, le paramètre value est défini sur false pour empêcher le formulaire d'être visible. Cependant, si le handle du formulaire n'a pas été créé, il doit l'être avant de définir la valeur sur false.

De plus, pour empêcher l'application de se fermer lorsque l'utilisateur double-clique sur l'icône de la barre des tâches, la méthode OnFormClosing peut être overridden :

protected override void OnFormClosing(FormClosingEventArgs e) {
  if (!allowClose) {
    this.Hide();
    e.Cancel = true;
  }
  base.OnFormClosing(e);
}
Copier après la connexion

Ici,allowClose est un indicateur défini pour indiquer quand l'application doit être fermée (par exemple, lorsque l'utilisateur clique sur "Quitter" dans le menu contextuel NotifyIcon). Si allowClose est faux, le formulaire est masqué et la propriété e.Cancel est définie sur true pour empêcher la fermeture de l'application.

Remarque supplémentaire

L'événement Load pour le formulaire principal ne se déclenchera pas tant que le formulaire ne sera pas affiché pour la première fois. Par conséquent, toute initialisation doit être effectuée dans le constructeur du formulaire plutôt que dans le gestionnaire d'événements Load.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal