Résolution d'écran + questions

Résolu
Signaler
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
-
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009
-
Bonjour à tous,



En faite j'aurais voulu savoir quel était la meilleur résolution pour
un logiciel 800*600 ou un peut moins etant donné qu'il y a la barre des
taches en bas sous windowsl ? et aussi, au lancement de la form je
detecte la resolution de l'écran et j'adapte la taille de mes form en
conséquence ?

11 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
Si j'ai bien compris, tu as une appli, et tu cherches la meilleure
resolution pour qu'elle soit visible entierement, meme en 800*600.

Le probleme, c'est qu'avec la barre de taches, une appli en 800*600
sera en partie couverte sur un ordi qui a sa résolution en 800*600. Et
n'oublions pas que la barre des taches peut tre bien se trouver sur les
cotés. (donc il faut savoir quel coté réduire)

2 solutions pour ne pas tomber dans les calculs : soit tu met la
propriété WindowState de ta form à Maximized de facon a ce qu'elle
remplisse toujours l'ecran, soit tu fais en sortes que ta form soit en
"always on the top", ce qui fait qu'elle recouvrira la barre de tache
si la resolution de ton appli est equivalente a celle utilisée par
l'utilisateur.

Mx
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
3
Les mecs, ils me font un peu rire, car tu es obligé de te lancer dans les calculs,

Si tu construis ta form avec 5 textbox cote à cote et un bouton, si tu as pas prévu que en 800*600 si tu as la barre de tache sur le cote, cela va te bourrer le tout , les controles se montent dessus,

Alors apres, on peut mettre le contenu de la form en scrollable, ce qui fait que plus rien ne se monte dessus, mais c'est pas tres beau, c'est quand meme bien plus pratique d'avoir tout sous les yeux,

apres, bon, faut peut etre pas se lancer dans un algo de malade qui va redimensionner certain controle si la fenetre fait tant de pixel, mais un minimum de prévision, ca aide
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
Tu met le minimum que demande ton appli pour que tous les Controls qu'elle implémente soient visibles.

Mx
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

Sinon, ya le autoscroll, pour que quand ya des controles hors de la form, les scrollbars s'affichent

YaoYao !!
1 + 1 = 10
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009

tu peux aussi masquer la barre des taches.

[DllImport("User32.dll", EntryPoint = "FindWindowA")]//Pour les action sur la barre des taches

static extern int FindWindow(string lpClassName, string lpWindowName);



[DllImport("user32.dll",
EntryPoint = "SetWindowPos")]//Pour les action sur la barre des taches

protected static extern int SetWindowPos(int hwnd,int hWndInsertAfter,int x,

int y,int cx,int cy,int wFlags);



//Afficher la barre des taches

public static void ShowTaskBar()

{

int intReturn = FindWindow("Shell_traywnd", "");

SetWindowPos(intReturn, 0, 0, 0, 0, 0, SWP_SHOWWINDOW);

}



//Masquer la barre des taches

public static void HideTaskBar()

{

int intReturn = FindWindow("Shell_traywnd", "");

SetWindowPos(intReturn, 0, 0, 0, 0, 0, SWP_HIDEWINDOW);

}



tu appelles dans ton Form1_Load

private void Form1_Load(object sender, EventArgs e)

{

this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);

HideTaskBar();

}



et à la fermeture

void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

ShowTaskBar();

}



@+
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

lol, rien compri

YaoYao !!
1 + 1 = 10
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Ouaip comme dit Mx, y'a ca aussi qui marche bien:

this.StartPosition = FormStartPosition.Manual;
this.Bounds = Screen.PrimaryScreen.WorkingArea;
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
3
Fait du640*480, la tu es sur que ca passe de partout ;-)

bon, je plaisante un peu , mais ca doit pas etre loin de la vérité si tu veux vraiment gérer ca.
Donc, un mettre ta l'état de ta form à maximized, ca c'est sur, tu es comme ca certain de prende tout l'écran.

Apres, que tu construis ton écran, utilise au mieux les propriété anchor et dock de chacun de tes controle, pour qu'il se déplacent en meme temps que ta form s'agrandit. Utilise les panels pour mettre tes controles dedans.

aprs, il faut voir si tu veux tout autoriser et tout prévoir .

Le plus simple, c'est de configurer de lancer ta form en maximised, tu mets juste un bouton dedans, tu mets ton écran en 800* 600, dnas le bouton tu mets ce code :
MessageBox.Show(this.Size.Width.Tostring() +","+ this.Size.HeighToString() );
tu agrandis la barre des taches en bas, tu cliques sur le bouton, cela de donneras la hauteur min,
tu déplaces la barre des taches à gauche, tu relance l'appli, bouton, et voila la largeur

moi j'ai mis arbitrairement du 700*500, mais c'est pas top top
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
Si je met le form WindowState à Maximized quel taille je met de
redimenssionement minimum ? 800*600 pour être sur ou un peut moins
?
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
ok merci à tous.
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009

arg presentation HIÉ