[API] Fenêtre adaptable selon la résolution

Signaler
Messages postés
22
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
7 août 2007
-
Messages postés
198
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
3 avril 2008
-
Bonjour,

J'ai développé une petite application mais le souci que j'ai, est que ma fenêtre principale ne s'adapte pas à la résolution de l'écran.
Sur certains écrans, elle est petite, et sur d'autres, elle dépasse l'écran.
Je sais que l'on peut récupérer la résolution grâce à: GetSystemMetrics(SM_CXSCREEN);Mais comment faire après?
J'ai créé ma boîte de dialogue grâce à l'éditeur de ressources de VISUAL STUDIO et grâce à la ligne:

hDlg=CreateDialog(hInstance,(LPCTSTR)IDD_DIALOG1,NULL,(DLGPROC)MainProc);
ShowWindow(hDlg,SW_SHOW);

Merci d'avance...

5 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
SetWindowPos()

ciao...
BruNews, MVP VC++
Messages postés
22
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
7 août 2007

OK BruNews, merci.
J'avais déjà essayé avec cette fonction.
Ma fenêtre se dimensionne bien en fonction des paramètres.
Mais les éléments à l'intérieurs ne se redimensionnent pas en fonction de cela.
Et je me retrouve avec des controls en dehors de l'écran...
Messages postés
198
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
3 avril 2008

Tu mets dans une variable la largeur de ta fenetre principale que tu donne a SetWindowPos
Et pour tout tes controles, tu joue avec cette variable , en positionnant en fonction d'elle( SetWindowPos(NULL, variable/2 +5...) etc...
Dans un ancien projet javais fais comme ca...
Bon ya peut etre plus propre, mais ca marchait!
Messages postés
22
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
7 août 2007

Donc, cela veut dire que je ne peux pas utiliser l'éditeur de ressources pour glisser/déposer mes différents controles où je veux dans ma Dialog Box?

Je suis obligé de les créer un par un "à la main" en précisant leurs tailles et leurs positions...
Messages postés
198
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
3 avril 2008

Dans mes souvenirs, moi je les avais bien créés avec l'editeur de ressources.
Mais à partir du moment où tu commences a bidouiller avec SetWindowPos(), alors mettre un editbox au centre de ta fenetre ou a droite ne devrait pas changer grand chose si tu lui induqe dans le SetWindowPos() que tu le veux a gauche...
A toi de voir quelle solution te semble la meilleure. Par exemple, moi j'avais une fentre qui s'affichait comme je voulais, avec mes composants là où je les avais "déposé" avec l'editeur de ressources. Mais j'avais ensuite rajouter la fonctionnalité de passer la fenetre en mode "plein ecran", et donc mes composants ne suivaient pas, c'est pourquoi j'avais opté pour l'utilisation de SetWindowPos pour chaque controle, en fonction des dimensions de ma fenetres principales...
J'espere avoir été clair,
Bon code!