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 :

Aspect d'un CEdit créé dynamiquement


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2005
    Messages : 76
    Par défaut Aspect d'un CEdit créé dynamiquement
    Bonjour,

    Je souhaite créé une application avec des controles créés dynamiquement (CEdit, CButton, CStatic).
    Mon problème se situe au niveau des styles a mettre en place, Je n'arrive pas a faire ce que je souhaite sur un CEdit.
    Une image vaut mieu que des explications :
    - Les controles dans le Group Box ont été créé avec l'éditeur de ressources
    - Le controle CEdit "mlkj" a été créé dynamiquement avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CEdit* pEdit = new CEdit;
    pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, CRect(200, 200, 280, 220), this, 9000);


    Ma question est la suivante : que mettre comme style pour que l'aspect de mon CEdit dynamique soit équivalent aux CEdit non dynamiques ??

    Pourquoi l'effet de profondeur n'est pas rendu ?

    Je précise que je travaille avec les MFC sous Embedded Visual C++ 4.0 avec un environnement WinCE .Net 4.1.

    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,
    apparemment les edits de ta ressource doivent avoir un attribut supplémentaire.
    comme client edge.
    la liste des options supplémentaires est la suivante:

    WS_EX_CLIENTEDGE;
    WS_EX_STATICEDGE;
    WS_EX_DLGMODALFRAME
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    pEdit->CreateEx(
        WS_EX_CLIENTEDGE,
         _T("EDIT"), 
        NULL, 
        _T(""), 
        ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, 
        CRect(200, 200, 280, 220),
        this,
        9000);
    vérifie si je ne me suis pas trompé dans les arguments...

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2005
    Messages : 76
    Par défaut
    Effectivement ça fonctionne mieu !
    Maintenant j'ai l'effet de profondeur sur le CEdit !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    pEdit->CreateEx(
    	   WS_EX_CLIENTEDGE,
    	   _T("EDIT"), 
    	   _T(""), 
    	   ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, 
    	   CRect(200, 200, 280, 220),
    	   this,
    	   9000);
    Il ne manque plus que l'a couleur de fond et j'aurais tout ce que je veux !
    Je rempli le fond et les CStatic avec la fonction OnCtlColor, pourquoi mon CEdit dynamique ne prend pas la couleur alors que les autres non dynamique sont coloriés ?

  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
    je peux voir le code de OnCtlColor ?

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2005
    Messages : 76
    Par défaut
    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
    27
    28
    29
    // - Fonctions de colorisation
    HBRUSH CForm4::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
        HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
     
        switch(nCtlColor)
        {
    	// Intercepte le message pour la dialogue et les statics. 
    	case CTLCOLOR_DLG:
    	case CTLCOLOR_STATIC  :
    		//  Fixe la couleur d’ecriture du texte
    		pDC->SetTextColor(COLOR_WHITE_ON);
    		// Fixe la couleur pour l'arriere plan
    		pDC->SetBkColor(COLOR_FOND);
    		// retourne le handle de la brush pour le fond si il existe.
    		if(m_HbrClrCtlBk ) hbr = m_HbrClrCtlBk;
    		break;
    	case CTLCOLOR_BTN :
    		// Colorise le bouton qui corrrespond au menu
    		if (pWnd == &m_button) 
    		{
    			// Desactive le bouton pour eviter l'arret du timer
    			m_button.EnableWindow(false);
    			return CreateSolidBrush(RGB(250,250,250));
    		}
    		break;
    	}
        return hbr;
    }

  6. #6
    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,
    il te manque un cas dans ton switch...:CTLCOLOR_EDIT
    http://cpp.developpez.com/faq/vc/?pa...alogBkgndColor

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

Discussions similaires

  1. [XL-2007] Modifier l'aspect d'une serie d'un graphique croisé dynamique
    Par guy2004 dans le forum Excel
    Réponses: 7
    Dernier message: 23/02/2011, 12h28
  2. Réponses: 2
    Dernier message: 29/07/2008, 12h42
  3. Modifier l'aspect d'un graphique croisé dynamique
    Par Goldenduck4000 dans le forum IHM
    Réponses: 6
    Dernier message: 01/06/2006, 15h11
  4. Réponses: 4
    Dernier message: 13/05/2002, 16h43
  5. repertoire temp dynamique
    Par killpilot dans le forum C
    Réponses: 2
    Dernier message: 26/04/2002, 16h19

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