Maison >développement back-end >C++ >Comment puis-je masquer le bouton de fermeture dans une fenêtre WPF tout en préservant le
Masquer le bouton de fermeture dans WPF Windows
Dans les applications WPF, la création de boîtes de dialogue modales implique souvent de masquer le bouton de fermeture tout en préservant la barre de titre. Bien que WPF ne dispose pas de propriétés intégrées à cet effet spécifique, il est possible de masquer le bouton de fermeture en utilisant une combinaison de P/Invoke et de gestion des événements.
Pour supprimer le bouton de fermeture, commencez par ajouter les déclarations nécessaires :
private const int GWL_STYLE = -16; private const int WS_SYSMENU = 0x80000; [DllImport("user32.dll", SetLastError = true)] private static extern int GetWindowLong(IntPtr hWnd, int nIndex); [DllImport("user32.dll")] private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
Ensuite, dans l'événement Loaded de la fenêtre, exécutez le code suivant :
var hwnd = new WindowInteropHelper(this).Handle; SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
Cela masquera le bouton de fermeture le long avec l'icône de la fenêtre et le menu système.
Considérations importantes
Notez que même si cette méthode masque le bouton de fermeture, elle n'empêche pas les utilisateurs de fermer la fenêtre par d'autres moyens comme appuyer sur Alt F4 ou fermer l'application depuis la barre des tâches.
Pour empêcher complètement la fermeture de la fenêtre avant qu'une certaine condition ne soit remplie, il est recommandé de remplacer l'événement OnClosing et définissez Annuler sur true. Cela peut être fait en conjonction avec la technique P/Invoke pour fournir une solution complète pour désactiver la fermeture de la fenêtre.
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!