FormBorderStyle à none et CreateParams sans le maximize ?

Résolu
cs_fcolo Messages postés 201 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 20 février 2007 - 13 mars 2006 à 17:26
cs_fcolo Messages postés 201 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 20 février 2007 - 14 mars 2006 à 09:57
Bonjour tout le monde,

j'ai une application avec le borderstyle à none.
De ce fait, j'ai perdu le context menu de la barre des taches.
Je l'ai récupérer grace à la réponse de maitre coq ici.
private const int WS_SYSMENU = 0x00080000;
private const int WS_MINIMIZEBOX = 0x00020000;

protected override CreateParams CreateParams
{
get
{
CreateParams createParams = base.CreateParams;
createParams.Style |= WS_SYSMENU;
createParams.Style |= WS_MINIMIZEBOX ;
return createParams;
}
}

Ca fonctionne très bien.
PAr contre, je voudrais supprimé le fait de maximizer et je ne connais pas le masque pour le virer dans le createParams.Style.

Le connaissez vous?

De plus, où trouvez vous ces codes?

f.colo

4 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
13 mars 2006 à 17:41
Comme ça :

private const int WS_MAXIMIZEBOX = 0x00010000;


// ..


createParams.Style ^= WS_MAXIMIZEBOX;
3
cs_fcolo Messages postés 201 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 20 février 2007 2
13 mars 2006 à 18:52
Merci beaucoup, c'est super tout ce que vous faite pour nous :)

Mais où trouvez vous toutes ces informations?
Comment trouver toutes les fonctions windows que l'on peut overrider?

f.colo
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
13 mars 2006 à 19:56
Les fonctions comme CreateParam ou WndProc dérivent de la classe Form ou de la classe Control, elles sont managées, mais elle reposent sur l'API Wndows, les constantes comme WS_MAXIMIZEBOX se trouvent dans les fichiers headers ( *.h ) du C/C++.

Toute la documentation de l'API Windows se trouve dans le platform SDK ou en ligne >ici<.
0
cs_fcolo Messages postés 201 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 20 février 2007 2
14 mars 2006 à 09:57
Donc, je suis allé dans le SDK du C:
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include

J'ai fais une recherche de WS_MAXIMIZEBOX dans tous les fichiers.
Il me sort le fichier WinUser.h.
Dans la section Window Styles il y a bien plein de définition dont celle données au dessus.
Ces définition je les retrouve dans le MSDN.
Mais, malgrès moi, je ne sais pas quel WS_ choisir pour enlever le deplacer du menu.
Il est bien dis explicitement que le WS_SYSMENU crée un menu dans la barre de tache mais rien pour son contenu. Donc pour le moment, betement je vous demande comment faire, mais vous devez bien avoir une technique pour y arriver.
En fait je cherche une méthode pour me débrouiller par moi meme plutot que de venir vous demander à chaque fois.

Par exemple, est-il possible dans se menu que je rajoute des appels de fonction de mon programme. Par exemple un lien dans se menu "bonjour" qui, lorsque je clique appelle ma fonction hello() qui affiche un popup.
Où trouvez vous toutes ces réponses?

f.colo
0
Rejoignez-nous