Menu Système
Utilisateur WDF
Inscrit:
10/02/2005 16:33
Post(s): 67
Bonjour,

Je voudrais savoir comment faire pour désactiver l'option menu système dans une fenêtre fille! Je vois bien l'option dans le style de la fenêtre mais elle est grisée et inaccessible!

Merci d'avance de votre aide!!

Contribution le : 22/02/2005 12:10
Créer un fichier PDF de la contribution Imprimer


Re: Menu Système
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Transcription d'un code trouvé en vb
Dans l'initialisation de la classe ou du projet, déclaration des constantes
GLOBAL
	CONSTANTE
		GWL_STYLE = (-16)
		MF_BYCOMMAND = 0
		MF_BYPOSITION = 0x400
		SC_MINIMIZE = 0xF020
		SC_MAXIMIZE = 0xF030
		SC_CLOSE = 6
		WS_MAXIMIZEBOX = 0x10000
		WS_MINIMIZEBOX = 0x20000
FIN

Procédure ou méthode pour griser le bouton X
PROCEDURE No_X(phWndFenetre est un entier)
//Désactiver X
hMenu, k sont des entiers 
hMenu = API("user32","GetSystemMenu",phWndFenetre, Faux)
k = API("user32","DeleteMenu",hMenu, SC_CLOSE, MF_BYPOSITION)

Procédure ou méthode pour griser le bouton Min
PROCEDURE No_Min(phWndFenetre est un entier)
//Désactiver 'minimiser'
hMenu, k sont des entiers
hMenu = API("user32","GetSystemMenu",phWndFenetre, False)
k = API("user32","DeleteMenu",hMenu, SC_MINIMIZE, MF_BYCOMMAND)
k = API("user32","GetWindowLongA",phWndFenetre, GWL_STYLE)
k = OUExclusifBinaire(k, WS_MINIMIZEBOX)
API("user32","SetWindowLongA", phWndFenetre, GWL_STYLE, k)

Procédure ou méthode pour griser le bouton Max
//Désactiver 'maximiser'
hMenu, k sont des entiers
hMenu = API("user32","GetSystemMenu",phWndFenetre, False)
k = API("user32","DeleteMenu",hMenu, SC_MAXIMIZE, MF_BYCOMMAND)
k = API("user32","GetWindowLongA", phWndFenetre, GWL_STYLE)
k = OUExclusifBinaire(k, WS_MAXIMIZEBOX)
API("user32","SetWindowLongA", phWndFenetre, GWL_STYLE, k)


Contribution le : 22/02/2005 14:41
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Menu Système
Utilisateur WDF
Inscrit:
10/02/2005 16:33
Post(s): 67
Bonjour! Enfin re

J'ai bien copié le tout dans le code d'initialisation de mon projet et pour les procédures dans la partie procédure globale

J'imagine que la variable phWndFenetre correspond au Handle() de la fenêtre, donc à l'initialisation de la fenêtre fille que je cherche à bloquer j'ai rentré ceci: No_Min(Handle())

Cependant, les boutons ne sont toujours pas bloqués... Me suis-je loupé quelques part?

Merci en tout cas, pour la réactivité c'est cool

Contribution le : 22/02/2005 17:00
Créer un fichier PDF de la contribution Imprimer


Re: Menu Système
Anonyme
Salut !

J'ai testé !! le code fonctionne parfaitement pour une fenêre qui n'est pas ouverte comme fille MDI, mais ne marche pas quand elle est ouverte en fille MDI.

Le solution est à chercher chez PC Soft, voilà pourquoi il apparait grisé en fille MDI l'option d'afficher ou pas le menu SYS... vraiment too BAD.

Impossible donc

A+

Contribution le : 23/02/2005 13:29
Créer un fichier PDF de la contribution Imprimer


Re: Menu Système
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

les constantes sont à mettre par exemple dans le code d'initialisation du projet ou bien meme afin que cela soit moins lourd les transformer en variables locales et les inclures dans les procédures.

pour que le code fonctionne
il faut que les procédures soit appelées juste après la fonction d'ouverture de la fenetre fille

Exemple
dans le code du bouton cmdOuvreFille
j'appele ma fenetre frmFille qui est une fenetre fille

OuvreFille(frmFille)
no_X(Handle(frmFille))
no_Max(Handle(frmFille))
no_Min(Handle(frmFille))

Ce code a été testé et fonctionne correctement
depuis une fenetre mdimere qui appel une fenetre mdifille
Les boutons après appel de ces fonctions sont inactifs et grisés

Contribution le : 23/02/2005 14:49
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Menu Système
Utilisateur WDF
Inscrit:
10/02/2005 16:33
Post(s): 67
J'ai fait exactement cela, sauf que j'ai rajouté l'appel de la procédure non plus dans l'initialisation de la fenêtre fille mais jusqte après l'appel d'ouverture (comme le dis dcharly93) mais rien à faire, ça ne marche pas....

Merci quand même de l'aide =)

Contribution le : 24/02/2005 09:08
Créer un fichier PDF de la contribution Imprimer


Re: Menu Système
Utilisateur WDF
Inscrit:
10/02/2005 16:33
Post(s): 67
J'ai parlé trop vite!!

Je viens de comprendre pourquoi cela ne marchait pas hihi
En fait, la fenêtre fille dans sa description, j'ai mis "Maximiser à l'ouverture" quand je la réduit et que je clique sur sa barre système (celle de la fille j'entend) efectivement là! les boutons appraissent bien en grisé. Mais lorsqu'elle est aggrandit au maximum les procédures sembles ne plus marcher....

Enfin ça ne résout pas mon problème... Mais merci de votre aide malgré tout!

Ps: Sur le forum de pcsoft c'est moi François lol

Contribution le : 24/02/2005 09:28
Créer un fichier PDF de la contribution Imprimer


Re: Menu Système
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Merci de vous identifier Francois,

J'ai donc regarder le problème et vous propose :
solution
ouvrez votre fenetre sans la maximiser
appliquer les méthode pour rendre les boutons invisibles
puis utiliser la fonction
maximise(frmFille) pour maximiser la fenetre
ainsi les boutons seront invisibles.

Contribution le : 24/02/2005 10:22
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Menu Système
Utilisateur WDF
Inscrit:
10/02/2005 16:33
Post(s): 67
De rien ^^ En fait, faudrait que je recrée mon profil hihi

J'ai déjà fait cela, mais dès que je maximise la fenêtre les boutons redeviennent actifs. Et quand je la réduit ils deviennent inactif...


Contribution le : 24/02/2005 10:40
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2