Maison >développement back-end >C++ >Comment afficher un formulaire de notification sans voler le focus ?

Comment afficher un formulaire de notification sans voler le focus ?

DDD
DDDoriginal
2025-01-15 18:12:45790parcourir

How to Display a Notification Form Without Stealing Focus?

Prévenir le vol de focus dans les formulaires de notification

Les formulaires de notification en bas de l'écran provoquent souvent des problèmes de concentration, interrompant le flux de travail des utilisateurs. Voici comment éviter ce comportement perturbateur.

Méthode 1 : Utilisation de ShowWithoutActivation

La solution la plus simple consiste à remplacer la propriété Form.ShowWithoutActivation. Le réglage sur true affiche le formulaire sans l'activer.

<code class="language-csharp">protected override bool ShowWithoutActivation
{
  get { return true; }
}</code>

Méthode 2 : personnalisation CreateParams

Pour plus de contrôle, remplacez la méthode CreateParams. L'utilisation des indicateurs WS_EX_NOACTIVATE et WS_EX_TOOLWINDOW empêche l'activation et le comportement standard de la fenêtre.

<code class="language-csharp">protected override CreateParams CreateParams
{
  get
  {
    CreateParams baseParams = base.CreateParams;

    const int WS_EX_NOACTIVATE = 0x08000000;
    const int WS_EX_TOOLWINDOW = 0x00000080;
    baseParams.ExStyle |= (int)(WS_EX_NOACTIVATE | WS_EX_TOOLWINDOW);

    return baseParams;
  }
}</code>

L'une ou l'autre méthode garantit que votre formulaire de notification apparaît sans détourner le focus de l'application principale, conservant ainsi une expérience utilisateur fluide.

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!

Déclaration:
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