cs_badrbadr
Messages postés475Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 novembre 2008
-
11 janv. 2007 à 09:39
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 2010
-
11 janv. 2007 à 18:08
Bonjour tout le monde,
Ma question aujoourd'hui porte sur les styles des fenêtres windows (CreateWindow(Ex).
Comment peut-on réaliser les styles montrées sur l'image suivante ?
Comme vous voyez, cette fenêtre n'a pas de barres de titre mais une bordure fixe.
Aussi, comme deuxième question, comment fait-on pour avoir une fenêtre sans bordure du tout.
J'ai essayé plusieurs combinaisons mais j'arrive pas au résultat estompé.
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 11 janv. 2007 à 10:07
Bonjour,
Pour avoir une fenêtre sans barre de titre ni bordure il suffit de lui donner le style WS_POPUP seul. Ensuite, pour avoir une bordure comme sur l'image, je la dessine dans la zone cliente avec les fonctions de la GDI.
cs_badrbadr
Messages postés475Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 novembre 20081 11 janv. 2007 à 11:19
racpp a dit :
Ensuite, pour avoir une bordure comme sur l'image, je la dessine dans la zone cliente avec les fonctions de la GDI.
J'ai oublier un petit détail : le screenshot est pris sur un WindowsVista. Donc, la bordure fait parti du style.
J'arrive à avoir une fenêtre sans bordure du tout mais une fenêtre comme celle sur le screen, je sais pas comment ils ont fait.
J'ai essayer avec WS_THICKFRAME + WS_POPUP et j'ai eu un résultat exactement semblable sauf (il y a tjrs un sauf :) que ma fenêtre est redimensionable contrairement à celle du screenshot :(
C'est un détail mais qui a son importance pour moi.
yoyo269 a dit :
Et WS_VISIBLE aussi bien sûr ! lol
Je ne l'ai pas mentionné et ça fonctionne bien. WS_VISIBLE est le style par défaut je pense :)
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 11 janv. 2007 à 11:38
yoyo269 >> Pour les fenêtres il est préférable de ne pas mettre le style WS_VISIBLE. Avec ce style la fenêtre recevra WM_PAINT et sera immédiatement affichée. Grâce à ShowWindow() on ne l'affichera que quand elle a été correctement créée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 11 janv. 2007 à 11:46
racpp >> Décidément on en apprend tous les jours, merci racpp !
badrbadr >> Pour empêcher le redimensionnement, je sais pas si il y a un style (ce qui serait bcp plus simple et j'apprendrais sûrement encore qq chose), mais tu peux essayer ceci :
cs_badrbadr
Messages postés475Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 novembre 20081 11 janv. 2007 à 12:09
Merci yoyo269, ça fonctionne mais quand la souris est sur les bords, on voit très bien le curseur de redimensionnement. Ça gâche un peu l'effet.
Il y a certainement une autre manière de faire. En C#/.net, je pouvais spécifier une bordure fixe et aucun curseur n'apparait sur les bords. Je vais sortir Spy++ question de voir les styles utilisés.
Y'aurais pas qqun qui connait un autre moyen (en utilisant les styles par exemple), pour créer une fenêtre qui ne se redimensionne pas?
cs_badrbadr
Messages postés475Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 novembre 20081 11 janv. 2007 à 12:51
Non, la bordure n'est pas la bonne.
Etk, ce n'est pas grave, je vais passer à autre chose maintenant.
Pour l'info, j'ai récupéré le style de la fenêtre (dont l'image est dans mon premier post) avec Spy++ et je l'ai appliqué tel quel à ma fenêtre. Résultat : exactement la même apparence mais ma fenêtre est redimensionable.
Constat : le programme en question (dont l'image....) utilise une fonction pour desactiver le redimensionnement.