begin process at 2012 05 29 06:07:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

GUI

 > 

Fenêtres et controle tout moches


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

Fenêtres et controle tout moches

jeudi 31 août 2006 à 11:59:27 | Fenêtres et controle tout moches

ctx_man

Salut tout le monde.
J'ai un problème que je ne comprend pas trop. J'utilise VS2005 Pro.
Mon problème se situe dans la création d'interface. Quand j'utilise l'editeur de ressources il m'affiche une belle fenetre avec des bouttons au style XP (coins arrondis, couleurs bleue/oranges, ... bref, le style XP quoi).
Seulement quand je compile et lance mon programme, mes controles sont aux style w95 (tout carré, police toute moche, ...)
Et ca me le fais aussi bien en MFC que en API(CreateWindow/CreateWindowEx).
D'ailleur en API  c'est encore pire, si par exemple je pose un premier boutton à la position (5, 5) et que je lui attribut la taille (50, 20). Puis un second à la position (5, 30) avec la même taille. En toute logique je devrait avoir 5pixel au dessu du premier boutton et 5 autres pixel séparant les deux bouttons, et bien pas du tout.

Tout ceci m'amène à la question : comment faire pour que l'interface ait bien la même gueule que dans l'éditeur de ressource ?
Ah oui, je ne souhaite pas du tout utiliser le .Net, les managés ou je ne sais quoi d'autre. Je veux rester en API Win32 ou au pire en MFC.

Merci de votre aide !

Le travail c'est la santé, ne rien faire c'est la préservé !!!
jeudi 31 août 2006 à 12:31:50 | Re : Fenêtres et controle tout moches

saifer

Membre Club
Salut,
Pour ce qui est du style xp la réponse se trouve ici, c'est ce que j'utilise, ca marche à merveille : http://www.cppfrance.com/codes/UTILISATION-STYLES-XP-AVEC-GCC-DEV-CPLUSPLUS-BCC_10904.aspx.
Pour le reste, je n'en ai aucune idée, mais c'est vrai que moi aussi j'ai remarqué qu'il y avait une différence entre les tailles indiquées dans l'éditeur de VS et la réalité ! si quelqu'un à la réponse..

-{ Saifer }-


jeudi 31 août 2006 à 14:10:28 | Re : Fenêtres et controle tout moches

SAKingdom

Membre Club
Techniquement, sous VC2005, tu n'as pas besoin de faire quoi que ce soit sauf configurer les options de compilation pour avoir le style XP. Aussi, si tu n'utilise pas les thèmes sous ton Windows, il est tout à fait logique que tu ne vois que des boutons standards. Pour les espacements et les positionnements avec l'API directement, c'est normal. Je ne peux pas t'expliquer pourquoi mais il y en un décalage.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation

jeudi 31 août 2006 à 14:13:31 | Re : Fenêtres et controle tout moches

ctx_man

Salut !
Oui je me disais bien que sous VC2005 je n'avais pas a incorporer le manisfeste puisqu'il le génère tout seul. J'utilise les styles XP sur mon PC, mais j'ai trouver aucune options de compilation qui permettrait d'utilise un theme quelconque.

Le travail c'est la santé, ne rien faire c'est la préservé !!!
jeudi 31 août 2006 à 14:27:32 | Re : Fenêtres et controle tout moches

vecchio56

Administrateur CodeS-SourceS
Pour les différences de taille, c'est tout a fait normal. Les tailles et les positions dans l'éditeur de ressources sont exprimées en Dialog Unit et non en pixel. Cela dépend en fait de la police utilisée. Pour s'en convaincre, il suffit d'utiliser une police plus grande, et on voit bien qu'un controle de même taille (en dlg unit) est visuelle plus grand.
Pour la gestion des manifest, je trouve qu'elle est mal intégrée à VS2005, et je continue pour ma part a faire ca à la main quand j'en ai besoin

_____________________________________
Un éditeur de ressources gratuit pour Windows

jeudi 31 août 2006 à 14:33:51 | Re : Fenêtres et controle tout moches

ctx_man

Concernant les différences de tailles je ne trouve pas ca normal moi. Parce que quand je spécifie les tailles et positions via la fonction CreateWindow ca ne correspond pas non plus. De plus, quelque soit l'echelle utilisée, je reprend mon calcul pour exemple
Si le premier objet est à 5 unité du bord supérieur et mesure 20 unité de hauteur, le second objet doit être positionner à 30 unité du bord supérieur afin de laisser 5 unité entre les deux objets. Que cette unité soit des pixel, des dialog unit, ou encore des clown sur des planches de surf, ca reste pareil.

Pour le manifest, j'ai jamais rien comprit à ce truc du manifeste moi. Je n'ai jamais réussit à en créer un qui soit accepté par le compilateur.

Le travail c'est la santé, ne rien faire c'est la préservé !!!
jeudi 31 août 2006 à 14:39:02 | Re : Fenêtres et controle tout moches

vecchio56

Administrateur CodeS-SourceS
Le compilateur ne fait rien avec le manifest, il faut juste le mettre en ressource d'ID 1 et de type RT_MANIFEST
Concernant ces "problèmes" de tailles, tu peux regarder MapDialogRect par exemple. Essaie de te rensigner un peu avant de dire n'importe quoi

_____________________________________
Un éditeur de ressources gratuit pour Windows

jeudi 31 août 2006 à 14:48:45 | Re : Fenêtres et controle tout moches

ctx_man

Hop hop hop ! Pas la peine de t'ennerver !
Je me suis renseigner et je ne vois pas où j'ai dit n'importe quoi.
J'ai dit que je comprennais rien aux manifeste, j'ai donc toujours fait sans.
J'ai également dis que les tailles et positions déliraient un peu quand j'utilisait les fonction CreateWindow.
Et j'ai dit que l'unité importe peu puisque c'est la même pour toutes les mesure. Chaque controle étant en soit également une fenêtre.
Je pense que vous m'avez mal comprit quand je parlait de problème de taille. Cela ne me dérange pas que quand je place un controle à la position (5, 5) ce ne soit pas des pixels. Ce qui me dérange c'est que si je place le premier à cette position et le second à la position (5, 30), il devrait y avoir systématiquement 5 unitée qui séparent ces deux controle. Que ce soit des cm, des pixel ou autre. Il doit y avoir le même espace entre ces deux controles que l'espace entre le premier controle et le bord de la fenetre. Et ce n'est pas le cas. C'est ce problème qui me dérange.

Le travail c'est la santé, ne rien faire c'est la préservé !!!
jeudi 31 août 2006 à 14:56:08 | Re : Fenêtres et controle tout moches

vecchio56

Administrateur CodeS-SourceS
Désolé d'avoir dit ca, je voyais pas ce que des "clown sur des planches de surf" venaient faire la dedans
Les unités sont en coordonnées client, on ne tient donc pas compte des bordures de la fenêtre (impossible de créer un controles en dehors de la zone client, même avec CreateWindow)
Par ailleurs, les unités de dialogue verticales et horizontales ne sont pas les mêmes

Mais si CreateWindow ne créait pas les fenêtres aux bonnes positions, cela se saurait!

_____________________________________
Un éditeur de ressources gratuit pour Windows

jeudi 31 août 2006 à 15:12:56 | Re : Fenêtres et controle tout moches

ctx_man

Les "clown sur des planches de surf" c'était juste pour imager.
Je sais bien que les coordonées sont ralative à la zone client. Zone. Je sais également que la bordure ne fait pas parti de cette zone.
Je me doute aussi que si la fonction CreateWindow délirai ca se saurait.

J'ai cependant relus la documentation de CreateWindow. Il semblerait que la position (x, y) soit en unité d'ecran (pixel) alors que les tailles (w, h) sont en device unit. Ce qui explique le décalage puisque ca voudrait dire que les unités de tailles ne sont pas les même que les unité de position. C'est celà que tu voulais me faire comprendre ? Je n'ai pas tilter avec la fonction MapDialogRect car rien n'indique cette différence d'unité dans la documentation de cette fonction, elle semble convertir toutes les valeurs, or si la position effectivement en pixel, seul les dimension sont à convertir.

Le travail c'est la santé, ne rien faire c'est la préservé !!!

1 2 3

Cette discussion est classée dans : style, controle, api, fenêtres, moches


Répondre à ce message

Sujets en rapport avec ce message

police, style,etc...[API] [ par Xs ] salut !!je voudrais savoir avec quelle fonction API on change la taille, le style, la police, etc.. d'un texte.Y compris et surtout la couleur !!!j'ai comment modifier un style de controle [ par LaPatoshe ] Bonjour, je osuhaite en utilisant uniquement les API en C++ modifier l'apparence d'un controle Edit en cours d'éxécution de mon programme. Je souhaite API Windows - Problème Dialog [ par banane_rose ] salut, dans mon template de ma dialog quand je rajoute la ligne pour les styles STYLE DS_MODALFRAME | WS_POPUP ça me met [Res controle EDIT [ par SnOOpss ] Bonjour,  je suis en train de creer une dll qui sous classe un edit et j'aurait 2 kestions a vous demander. En fait la scrollbar a gauche de l'edit ap listbox controle [ par JoebarGlut ] Salut, j'utilise l'api win32 et les controles preconstruis de l'api. Salut, Existe t il un message pour gerer les positions du genre LB_UPSTRING ?, LB Style d'un controle. [ par SnOOpss ] Bonjour, la  je bloque sur un truc tout bete mais je voit pas du tout mon erreur. Je crée un dialogue tout bete avec 2 bouttons l'un avec le style BS_ wysiwyg pour fenêtres en api [ par amoweb ] BonjourJe cherche un editeur wysiwyg pour créer des fenêtres en api avec CreatWindows().J'ai deja trouvé des editeurs de ressources mais les possibili Les messages envoyés aux fenêtres dans une API Windows [ par totoui ] Bonjour, je poste ici en espérant que ce soit le bon endroit (difficile de rechercher "message de fenêtres")...Je programme une API en C++ sans MFC so API Windows, gestion de WM_COMMAND [ par coucou_le_minou ] Bonjour, tout d'abord pardonnez moi si mon message ne correspond pas a la rubrique choisie, j'ai eu quelques soucis a cerner la categorie de mon probl CONTROLE EDIT [ par Telemorphix ] Bonjour,Je fais mes premiers pas en ce moment en C et C++ (Visual C++ 6.0) et sur l'API Windows.Je souhaite afficher du texte dans une fenêtre EDIT mu


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 10,171 sec (4)

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