IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

Souci de position et dimension d'un rectangle dans un panel.


Sujet :

C++/CLI

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 243
    Points : 103
    Points
    103
    Par défaut Souci de position et dimension d'un rectangle dans un panel.
    Bonjour,

    Comme dit dans le titre je rencontre un petit souci de positionnement et de dimensionnement d'un rectangle que je dessine dans un panel.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private: System::Void panel1_Paint(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e) {
     
    				 FormGraphic = this->panel1->CreateGraphics();   
    				 FormGraphic->Clear(System::Drawing::Color::White);			 
    				 System::Drawing::Rectangle drawingRect(100, 100, 75, 23);  
    			         brush = gcnew System::Drawing::SolidBrush (System::Drawing::Color::Blue);	
    				 FormGraphic->FillRectangle( brush, drawingRect );	
    }
    A l'exécution le rectangle tracé n'a pas son origine à 100,100 et ses dimensions ne sont pas 75,23 ..

    Il se trouve grosso modo à 130,130 avec des dimensions de l'ordre de 95,30 .... En gros il y a un coefficient 1,3 entre la position souhaitée et la position affichée, de même pour les dimensions ...

    Pour le vérifier j'ai positionné un bouton en 100,100 avec des dimensions de 75,23 et le bouton et le rectangle ne se recouvrent pas du tout

    Si je place le rectangle à 0,0 il est bien dans l'angle supérieur gauche du panel mais avec des dimensions de l'ordre de 95,30

    Si je le place à 450,450 il ne s'affiche pas et pourtant le panel mesure 520,520

    Il y a surement un truc que je ne pige pas .. j'ai passé l'après midi à chercher et je ne vois rien.
    Merci à ceux qui pourraient m'aiguiller ..

    Bonne soirée
    Jean-Louis

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ton Windows est-il réglé en grandes polices? Aussi connu comme "High-DPI"?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 243
    Points : 103
    Points
    103
    Par défaut
    Bonjour Médinoc,

    Je n'en sais rien du tout ... je ne trouve pas où est cachée cette information sous Win 8

    J'ai juste trouvé un truc qui me propose : "modifier la taille de tous les éléments"; il est sur "moyen", j'ai essayé "petit" et "grand" ... à part le fait que tout est rétréci ou élargi sur l'écran, rien ne change concernant mon programme .. toujours le rectangle pas là où je veux

    Il me semblait que les abscisses et ordonnées étaient exprimées en pixels et j'avoue que je ne comprends pas du tout

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ben oui, c'est censé être en pixels et généralement si quelque chose déforme ça c'est que le "high-DPI" est actif...

    Coche la case "Me laisser choisir un niveau de mise à l'échelle pour tous mes affichages" et tu devrais voir le slider remplacé par des boutons radio, dont "Petite - 100%" qui devrait te donner le résultat correct...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 243
    Points : 103
    Points
    103
    Par défaut
    J'ai essayé et cela ne change rien ...

    Mon écran est un écran tactile avec une résolution de 1920 X 1080 .. j'ai essayé d'autres résolutions, cela ne change rien non plus

    J'ai aussi essayé de modifier dans les propriétés de mon application mais rien n'y fait

    J'ai regardé le site de Microsoft, j'ai vu qu'il existe une fonction SetProcessDpiAwareness, je ne sais pas si cela serait une solution pour mon application.

    Je comprends maintenant pourquoi l'outil que j'utilise pour programmer des microprocesseurs m'ouvre souvent des fenêtres qui sont au 9/10ième en dehors de l'écran.

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/12/2012, 21h32
  2. Réponses: 0
    Dernier message: 21/12/2012, 22h50
  3. souci de tableau à 2 dimensions
    Par turican2 dans le forum VB.NET
    Réponses: 7
    Dernier message: 01/08/2009, 21h23
  4. Modification de la fenêtre d'affichage (position et dimension)
    Par DangerousBowlOfJelly dans le forum SDL
    Réponses: 8
    Dernier message: 21/11/2006, 07h57
  5. coment détecter les positions des cotés d'un rectangle?
    Par einegel dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 18/01/2005, 10h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo