Modifier le style d'une fenetre pendant execution [Résolu]

Signaler
Messages postés
101
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
18 février 2008
-
Messages postés
101
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
18 février 2008
-
Bonjour
j'ai créé une fenetre avec
HWND hwnd = CreateWindowEx(WS_EX_TOPMOST, _T("SON NOM"), 0,
WS_POPUP | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
0, 0, Xecran, Yecran, NULL, NULL, hInstance, NULL);

Xecran et Yecran: taille maxi de ma résolution(1280x1024)
Cette fenetre recouvre tout l'ecran (meme la barre de tache) et TOPMOST.
J'aimerai la modifier pour lui donner le style avec barre de titre et bordure resizeable.
J'ai trouvé des réponses sur le site mais aucune ne fonctionne avec le style WS_EX_TOPMOST.

a fonction a utiliser est SetWindowPos mais je ne dois pas utiliser les bon parametre.
Pour ceux qui connaisse RadMin et la touche F12, je veux faire pareil !!!
Merci
Sephiro

3 réponses

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,

Voici un exemple pour ajouter la barre de titre et la bordure resizeable:

// Récupérer l'ancien style:

DWORD oldstyle=GetWindowLong(hWnd, GWL_STYLE);

// Ajouter les nouveaux styles:

SetWindowLong(hWnd,GWL_STYLE, oldstyle | WS_CAPTION | WS_THICKFRAME );

// Appliquer le changement de style:

SetWindowPos(hWnd,0,0,0,0,0, SWP_NOMOVE |SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);



Pour enlever les styles qu'on vient d'ajouter, on modifie le 3ème paramètre de SetWindowLong() comme ceci:

SetWindowLong(hWnd,GWL_STYLE,oldstyle & ~(WS_CAPTION | WS_THICKFRAME));



Tout cela fonctionne parfaitement avec le style WS_EX_TOPMOST.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Pour modifier le style c'est SetWindowLong(hWnd, GWL_STYLE, nouveau style);
Attention, le nouveau style doit contenir aussi les anciens (tu les récupères avec GetWindowLong).
Messages postés
101
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
18 février 2008

Merci racpp pour ton exemple
Sephiro