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 :

Marge indésirable dans un CEdit


Sujet :

MFC

  1. #1
    Membre éclairé Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Par défaut Marge indésirable dans un CEdit
    Bonjour,

    J'ai créé un CEdit en dynamique
    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
        HWND hwnd=::CreateWindowEx(
                                    WS_EX_CLIENTEDGE,        // extended window style
                                    lpszCaption,            // Class name
                                    "",                        // window name
                                    WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | ES_AUTOVSCROLL,                // window style
                                    rc.left,                // horizontal position of window
                                    rc.top,                    // vertical position of window
                                    rc.Width ( ),            // window width
                                    rc.Height ( ),            // window height
                                    pParentWnd->m_hWnd,     // handle to parent or owner window
                                    (HMENU)nID,                // menu handle or child identifier
                                    AfxGetInstanceHandle(),    // handle to application instance
                                    NULL                    // window-creation data
                                );
        SubclassWindow(hwnd);
    Mais je ne sais pas pourquoi mais une marge de quelques pixels entre la bordure de l'Edit et le texte à l'intérieur de cet Edit.

    J'ai vérifié les styles appliquer à l'Edit. Aucune réponse trouvé.
    J'ai comparé un Edit correct trouvé dans Visual et le mien. Et je n'ai pas vu de différence qui expliquerait la marge.


    Et la maintenant je ne sais plus où chercher. Alors je m'en remet à vous


    Merci d'avance

  2. #2
    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
    Par défaut
    salut,
    c'est pour quoi faire ?
    tu as mis le style WS_EX_CLIENTEDGE c'est pas ça ton probleme ?

  3. #3
    Membre éclairé Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Par défaut
    Merci pour ta réponse mais malheureusement ce n'est pas bon sans WS_EX_CLIENTEDGE.

    Pour répondre à ta première question, je pose cette question car on me demande d'avoir un Edit avec la même tronche que l'Edit suivant :

    Cet Edit n'a que très peu de pixel entre la bordure et le texte.

    Alors que quand je crée mon contrôle moi même j'obtiens ça :

    La marge est plus importante. Je sais c'est très léger mais il parait que ça saute à l'oeil et qu'on peut croire qu'il y a un espace entre la bordure et le texte.

    D'ailleurs, je viens de vérifier les Edit de Firefox et ils ont encore moins de marge que la première image.

    Mais je n'arrive pas à le faire correctement.

  4. #4
    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
    Par défaut
    ok , je viens de regarder j'ai le même style de création dans un de mes outils de saisi et je n'ai pas ce probleme de marge .
    par contre j'utilise CreateWindow.
    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
     
        int st=WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL | WS_TABSTOP | style;
     
            HWND hwnd=::CreateWindow(
                    TEXT("EDIT"),                // Class name
                    NULL,                        // Window text
                    st,                            // Window style
                    NewRect.left,                    // x coordinate of the upper-left corner
                    NewRect.top,                    // y coordinate of the upper-left corner
                    NewRect.Width(),                // Width of the edit control window
                    NewRect.Height(),            // Height of the edit control window
                    pParent->GetSafeHwnd(),        // Window handle of parent window
                    (HMENU)(UINT)nitem,    // Control identifier
                    AfxGetInstanceHandle(),     // Instance handle
                    NULL);                        // Specify NULL for this parameter when 
                                                // creating a control
    essaye comme ça pour voir.

  5. #5
    Membre éclairé Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Par défaut
    Ba ça à l'air de fonctionner mais j'ai perdu les bordures du theme XP.
    J'ai donc fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ModifyStyleEx ( 0, WS_EX_CLIENTEDGE);
    pour le récupérer.

    Je n'ai pas récupérer la marge, donc c'est cool. Mais j'ai un truc bizarre avec les bordures vertes claires.
    En fait à la création elle n'existe pas. Mais quand je les survoles, la bordure vertes apparait. Et disparait quand l'Edit fait un Redraw ( Redimentionnement, perte de focus ).


    Mais bon au pire je met une bonne vieille bordure noire et puis c'est tout.

  6. #6
    Membre éclairé Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Par défaut
    Bon je viens de faire des tests beaucoup plus approfondi et je me suis aperçu que mon problème de marge venait en fait de la police de caractère que j'utilisais.

    Quand tu utilise la police Arial tu aura obligatoirement la marge. Mais si tu utilise la police de base MS Sans Serif, il n'y a pas de marge.

    Ba désolé

  7. #7
    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
    Par défaut
    oui c'est vrai je n'utilise jamais de fonte true type dans des edits.

  8. #8
    Membre éclairé Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Par défaut
    Parceque les polices TRUE TYPE peuvent causer se genre de problème ?

  9. #9
    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
    Par défaut
    Arial est une police TRUE TYPE, MS Sans Serif non et à l'affichage c'est plus rapide, et d'ou ton effet de bord...

  10. #10
    Membre éclairé Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Par défaut
    Ba merci c'est toujours bon à savoir.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. limiter à 8 caracteres la saisie dans un cedit
    Par firejocker dans le forum MFC
    Réponses: 4
    Dernier message: 07/12/2005, 15h41
  2. problème de focus dans un CEdit
    Par Depteam1 dans le forum MFC
    Réponses: 11
    Dernier message: 08/09/2005, 15h05
  3. Empêcher la sélection dans un CEdit
    Par hiko-seijuro dans le forum MFC
    Réponses: 5
    Dernier message: 15/06/2005, 08h47
  4. Réponses: 2
    Dernier message: 21/03/2005, 09h03
  5. [MFC] Retour à la ligne dans un CEdit
    Par Kant dans le forum MFC
    Réponses: 7
    Dernier message: 18/02/2004, 08h58

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