begin process at 2012 02 11 23:01:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

System

 > 

CreateWindow(Ex) un style en particulier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

CreateWindow(Ex) un style en particulier

jeudi 11 janvier 2007 à 09:39:30 | CreateWindow(Ex) un style en particulier

badrbadr

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 ?
Vista clock

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é.

Merci pour vos réponses.
[:D] @++
jeudi 11 janvier 2007 à 10:07:30 | Re : CreateWindow(Ex) un style en particulier

racpp

Administrateur CodeS-SourceS
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.
jeudi 11 janvier 2007 à 10:59:15 | Re : CreateWindow(Ex) un style en particulier

yoyo269

Membre Club
Et WS_VISIBLE aussi bien sûr ! lol

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

jeudi 11 janvier 2007 à 11:19:38 | Re : CreateWindow(Ex) un style en particulier

badrbadr

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 :)

Allez, d'autres idées?
Merci pour tout
[:D] @++

jeudi 11 janvier 2007 à 11:38:05 | Re : CreateWindow(Ex) un style en particulier

racpp

Administrateur CodeS-SourceS
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.
jeudi 11 janvier 2007 à 11:46:34 | Re : CreateWindow(Ex) un style en particulier

yoyo269

Membre Club
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 :

case WM_SIZING:
            RECT* Dimension = (RECT*)lParam;
            Dimension -> bottom = HAUTEUR + Dimension -> top;
            Dimension -> right = LARGEUR + Dimension -> left;
            return 1;
break;

HAUTEUR et LARGEUR sont des constantes pour les dimensions de ta fenêtre.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

jeudi 11 janvier 2007 à 12:09:07 | Re : CreateWindow(Ex) un style en particulier

badrbadr

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?

[:D] @++
jeudi 11 janvier 2007 à 12:42:29 | Re : CreateWindow(Ex) un style en particulier

yoyo269

Membre Club
En bidouillant un peu, j'ai trouvé ça :

WS_DLGFRAME | WS_POPUP

Dis-moi si ça te convient.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

jeudi 11 janvier 2007 à 12:51:15 | Re : CreateWindow(Ex) un style en particulier

badrbadr

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.

[:D] @++
jeudi 11 janvier 2007 à 12:53:34 | Re : CreateWindow(Ex) un style en particulier

yoyo269

Membre Club
Ok badrbadr, bon courage pour la suite alors !

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"


1 2

Cette discussion est classée dans : style, question, ex, particulier, createwindow


Répondre à ce message

Sujets en rapport avec ce message

EDIT avec WM_EX_CLIENTEDGE [ par vecchio56 ] Bonjour J'ai un petit problème un peu difficile à expliquer: J'ai une fenêtre sans le style WS_CHILDWINDOW qui a une child edit. Je dessine par dessu Alternative au style WS_EX_LAYERED sur une fenetre enfant ? [ par shuttleur ] Bonjour à tous,Je cherche à faire un effet de halo autour d'une fenêtre.Cette fenêtre n'a que sa partie cliente visible. En fait, il me faudrait pouvo [DOS]Question .bat [ par lakeeee ] Salut, Je voudrais créer un fichier .bat pour lancer un programme .exe qui s'exécute dans une fenêtre DOS. Mon programme se lance bien avec la comman programmation touches en c [ par micwon ] Bonjour, J'aimerais utiliser une combinaison de touche (ex:Ctrl+s) pour afficher un texte ex("Salut") dans une fenêtre texte d'une application où je n Question sur TinyXML [ par akella ] Bonjour, Je me demandais si il étais possible de faire une instance publique d'un document XML pour ne pas avoir a toujours ré-ouvrir le fichier question sur le C [ par zoneart ] Bonjour, J'ai une question sur le C: void exemple(const *char); int main(void) { char nom[20]; memset (nom, 0, 20); printf ("Entrez un nom : Question sur le handle de WIN32 [ par BencoAndCo ] Bonjour, Je débute en prog. win32 en C++ et j'ai un gros logicielle à analyser dans ce code j'ai trouvé la ligne suivante : " typedef HANDLE (WINA [ALGO ] Question simple sur les tableaux [ par SonBisounours ] étant en BTS IG , j'apprend l'informatique petit à petit et parfois de petite question me viennent à l'esprit. Je suis en cour pas correspondance et d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,590 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales