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

MFC Discussion :

difference d'affichage selon windows XP [FAQ]


Sujet :

MFC

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut difference d'affichage selon windows XP
    Slt,

    je comprend pas pourquoi mais mon appli apparait differemment sur le pc de mon patron

    contrairement à sur le mien et celui du collègue qui possède un thème de bureau quasiment identique à celui qui pose problème.

    et le plus bizard c'est que la taille des boutons ainsi que leurs positions diffère nt sur son pc

    A gauche l'affichage problematique
    A droite l'affichage sur mon pc



    vous avez une idée ?

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 581
    Points
    41 581
    Par défaut
    Celui de gauche a une taille de police plus grande, et la position de départ des éléments sur une boite de dialogue est basée sur la taille de police.

    Mon conseil -> Lors de l'initialisation de la boite de dialogue, redimensionne-là et repositionne manuellement tous ses contrôles. (MoveWindow() etc.)

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    ok, je savais pas ca

    selon ce que tu dis, je dois les repositionner, mais mon image d'arrière plan est de taille fixe

    que faire alors pour respecter mon affichage dans tous les cas ?

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 581
    Points
    41 581
    Par défaut
    Dans la création de ta boite de dialogue, tu redimensionne ta boite de dialogue pour l'adapter à la taille de ton image d'arrière-plan, puis tu repositionnes tous les contrôles.

    Tu utilises quoi, pour coder? (Win32 API, MFC, Managed C++, C+/CLI...)

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Tu peux contourner le problème comme suit:
    en plongeant dans le code MFC de la création d'une dialogue on trouve l'utilisation de la classe non documentée CDialogTemplate qui permet d'accéder aux propriétés de la dialogue d'ou l'idée de créer un template modifié pour spécifier notre fonte perso...
    en redefinissant la fonction DoModal.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    int CMyDialog::DoModal()
    {
       CDialogTemplate dlgTemp;
       int             nResult;
     
       // lecture du template d'origine
       if (!dlgTemp.Load(MAKEINTRESOURCE(IDD))) return -1;
     
       // fonte par defaut
       dlgTemp.SetFont("MS Sans Serif", 8);
     
       // pointeur sur le dialogue template modifié
       LPSTR pdata = reinterpret_cast<LPSTR>(GlobalLock(dlgTemp.m_hTemplate));
     
       m_lpszTemplateName = NULL;
       InitModalIndirect(pdata);
     
       // appel domodal 
       nResult = CDialog::DoModal();
     
       // liberation du template modifié
       GlobalUnlock(dlgTemp.m_hTemplate);
     
       return nResult;
    }
    dans l'exemple si dessous la fonte standard par defaut de la boite de dialogue a ete respectée .
    essaye et dit moi si change quelque chose sur ton autre poste.

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    j'ai pas acces à son pc actuellement, et je n'ai pas reussi à changer la police pour reproduire ce probleme chez moi,

    mais en changeant la taille de la police avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dlgTemp.SetFont("MS Sans Serif", 12);
    j'obtiens le meme probleme, donc il est plus que probable quec'est ok !

    cool merci ! c'est nickel !

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    Bon, ben apparemment non, le problème reste entier sur son pc



    pourtant, j'etais sûr que ce serait ok ! snif !

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    il ne serait pas en grosses fontes par hazard ?

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    non, et puis quand je me met en extra large,

    ton code force la bonne taille chez moi

  10. #10
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    en mettant

    dlgTemp.SetFont("MS Sans Serif XXXX", 8);

    donc en appelant une police non existante, j'ai le meme soucis,

    j'attend sa reponse pour savoir s'il possède la police et si de la rajouter corrige le soucis

    si le probleme vient de la, comment integrer la police dans mon appli (pour être sûr del'avoir sur le système) ?

Discussions similaires

  1. Affichage selon une condition dans un DBGRID !
    Par obon dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/04/2006, 09h26
  2. Affichage de windows avec propriété StayonTop
    Par Graffito dans le forum Linux
    Réponses: 2
    Dernier message: 27/01/2006, 09h17
  3. Affichage selon la résolution de l'ecran
    Par uloaccess dans le forum Access
    Réponses: 3
    Dernier message: 06/01/2006, 12h53
  4. [VB.NET2003] : Problème affichage sous Windows 98
    Par alkponn dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/10/2005, 16h34
  5. affichage selon valeur entiere ou decimale
    Par Ankya dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 04/05/2005, 10h36

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