S'identifier

API
Documentation
Ressources
Trucs & astuces
Libre
Gabarits
Services

Membres
Participer
Visiter

Contact

Meilleure résolution
mode 800 x 600

Optimisé pour
IE v.5
Netscape v.6
mais surtout pour
Mozilla v.1
minimum

 


Membre de Click-FR®, Réseau francophone Paie-Par-Click

DestroyWindow

Date de parution : 29/09/2004 - Cette fiche API a été lue 2599 fois

Description

DestroyWindow détruit la fenêtre donnée. La fonction envoie les messages WM_DESTROY et WM_NCDESTROY à la fenêtre pour la désactiver et en enlever le focus clavier. La fonction détruit aussi le menu de la fenêtre, les interceptions de thread dans la file des messages et les timers. Elle détruit le droit de propriété sur le presse-papiers. Si la fenêtre donnée est une mère ou une fenêtre propriétaire, la fonction détruit automatiquement les filles associées à elle. La fonction retourne Vrai si elle réussit (appeler GetLastError pour les messages d'erreur étendus).

Syntaxe

AppelDLL32("user32", "DestroyWindow", hWnd)

hWnd

Handle identifiant la fenêtre à détruire.

Compatibilité

Toutes versions

Remarque

Cette fonction est utile pour la destruction de champs créés avec la fonction ChampClone() en version 7.x (voir exemple 2).

Exemple 1

// Remplacer le bouton Démarrer de la barre de tâches
// par un autre bouton de votre choix
// Insérer le code ci-dessous dans le traitement clic d'un bouton

WS_CHILD est un entier long = 0x40000000
SW_HIDE est un entier long = 0
SW_NORMAL est un entier long = 1
tWnd est un entier long
bWnd est un entier long
ncWnd est un entier long
hInstance est un entier long
dwStyle est un entier long
r est un RECT

dwStyle = WS_CHILD
hInstance = Instance()
hWnd = Handle()
// Handle de la barre de tâches
tWnd = AppelDLL32("user32", "FindWindowA", "Shell_TrayWnd", Null)
// Handle du bouton Démarrer
bWnd = AppelDLL32("user32", "FindWindowExA", tWnd, 0, "BUTTON", Null)

// Ce code vous est offert par Beaussier en ligne et le Centre W..D..
// Position du bouton
AppelDLL32("user32", "GetWindowRect", bWnd, &r)
// Crée le nouveau bouton
ncWnd = AppelDLL32("user32", "CreateWindowExA", 0, "BUTTON", ...
"Meuh !", dwStyle, 0, 0, (r:cd - r:cg), (r:cb - r:ch), tWnd, 0, hInstance, 0)
// Affiche le nouveau bouton
AppelDLL32("user32", "ShowWindow", ncWnd, SW_NORMAL)
// Cache l'ancien bouton
AppelDLL32("user32", "ShowWindow", bWnd, SW_HIDE)

// IMPORTANT ! Mettre les lignes ci-dessous dans le code
// de fermeture de votre fenêtre
// Sinon vous ne reverrez plus le bouton Démarrer
AppelDLL32("user32", "ShowWindow", bWnd, SW_NORMAL)
AppelDLL32("user32", "DestroyWindow", ncWnd)

Exemple 2

// Windev 7.x permet la duplication de champ avec 
// la fonction ChampClone mais n'en permet pas la
// suppression
hClone est un entier
hClone = Handle("nomChampClone")
SI hClone ALORS
API("user32", "DestroyWindow", hClone)
FIN


Nombre de commentaire sur DestroyWindow : 1

Rappel : Le code fourni est compatible Windev v.4 et 5. Pour les versions supérieures, vous devez modifier le type des variables numériques. Par exemple : entier long devient entier.
Bien sûr, les marques citées sont déposées par leurs sociétés respectives. Ces pages sont à la disposition de tous, le code fourni est libre mais toute responsabilité est déclinée en cas de mauvais usage ou de dysfonctionnement.
© 2000-2005 Beaussier & Le Centre W..D..