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 :

Configuration d'une EditBox par défaut


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 53
    Par défaut Configuration d'une EditBox par défaut
    Bonjour,

    Quelqu'un aurait-t'il lune solution aux problème suivants:
    A un moment de mon programme je fais afficher une boite de dialogue secondaire au milieu de laquelle se trouve une Editbox. J'aimerais que cette EditBox affiche par défaut le contenu d'un fichier texte.

    Problème1 : je sais déjà comment faire afficher ce texte dans cette editBox...mais seulement apres apres avoir intercepté un message...En fait, j'aimerais que cette editBox soit déja remplie lors de son affichage quand la boite de dialogue apparait.

    Problème2 : j'ai configuré ma editBox en "ReadOnly" ;elle apparait donc grisée. Comment rendre le background de cette editBox blanc sans donner accès à l écriture à l'utilisateur.

    Point d'orgue: Est ce que je peux utiliser une page HTML pour remplir cette editBox?

    ...en espérant que je n'abuse pas de votre bonne volonté!

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut
    Problème1 : je sais déjà comment faire afficher ce texte dans cette editBox...mais seulement apres apres avoir intercepté un message...En fait, j'aimerais que cette editBox soit déja remplie lors de son affichage quand la boite de dialogue apparait.
    ->Dans le OnInitDialog de ta dialog tu remplis ton edit Box et hop le tour est joue :-)

  3. #3
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    probleme 2 : voir faq http://c.developpez.com/faq/vc/?page...#CEditCtlColor

    et pour le 3 , tu veux le contenu d'une page web (le code html) ou le rendu ?

  4. #4
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 53
    Par défaut
    à Pitch21: OnInitDialog?
    J'ai créé ma boite de dialogue via le menu contextuel (drag and drop d'éléments), puis ecrit la fonction gérant les messages associés à cette dernière, enfin je l'appelle avec la fonction "Dialogbox"...et c'est tout!..A aucun moment je n'ai écrit une fonction qui s'appellerait "OnInitDialog".
    Ma question se transforme donc en "comment puis-je associer cette "OnInitDialog" à ma boite de dialogue?"

    à nico-pyright(c): Je cherche à afficher le rendu d'un code HTML

    Merci

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut
    Ouvres ton fichier cpp, puis dans la fenetre propriete il y a un pitit carre et la il y a d'autres evenements propre a une dialog :-) (Visual studio 2003..)

    Le OnInitDialog est en fait appele au premier affichage de ta Dialog :-)

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Citation Envoyé par Mac Twist
    à nico-pyright(c): Je cherche à afficher le rendu d'un code HTML
    tu ne peux pas dans un CEdit, il te faut utiliser l'activex navigateur web microsoft par exemple

  7. #7
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 53
    Par défaut
    Merci à tous les 2.

    En fait, je commence à avoir límpression qui me manque un pan de connaissances pour vraiment faire ce que je veux...Pour le moment, j'écrivais tout à la manière dúne simple application win32.

    Pour appliquer vos suggestions, il faut que je me familiarise avec le concept de MFC et tous ses automatismes (CDialog, CEdit,...)

    Merci encore...me manque plus qu`à trouver un des vos tutos qui va m'expliquer tout cela!

  8. #8
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 53
    Par défaut
    Rien ne se passe lors de l'initalisation de ma dialog.
    Je précise que j'ai fait un copier-coller de ce que j'avais écrit dans ma fonction qui gere les messages de ma boite de dialogue ; j'ai juste efface le parametre handle vers fenetre en cours de la commande "SetDialogItemText", pour ne plus avoir d'erreurs de compilation.

    Y auraitíl conflit entre mes fonctions "maison" qui gèrent mes dialog et celles créées automatiquement via ClassWizard (qui les gèrent aussi!)?


    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
    BOOL CHelpDlg::OnInitDialog() 
    {
        CDialog::OnInitDialog();
        // TODO: Add extra initialization here
        char *HelpText;
        HANDLE hFile;
        CHAR szFile[MAX_PATH]={"C:\\Help.txt"};
        DWORD FileSize,nbcharRead ;  
     
          hFile = CreateFile(szFile, GENERIC_READ, 0,NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);                   
              FileSize = GetFileSize(hFile, NULL);
              HelpText = (PCHAR)LocalAlloc(LMEM_FIXED, FileSize+1);
              ReadFile(hFile, HelpText, FileSize, &nbcharRead, NULL) ;
               HelpText[FileSize] = '\0';    
        CloseHandle(hFile);    
        SetDlgItemText(IDC_EDIT1,HelpText);
        //MessageBox("","blaba",MB_OK);
     
     
     
     
        return TRUE;  // return TRUE unless you set the focus to a control
                      // EXCEPTION: OCX Property Pages should return FALSE
    }

  9. #9
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 53
    Par défaut
    Voila comment je gère ma dialogBox.
    Ca devient encore plus confus dans mon esprit si je pense a utiliser ClassWizard pour mon Bouton ID_HELPOK...dans ce cas, le meme message peut etre interprete de 2 facons differentes.
    Ný aurait t il pas quelquechose a declarer dans la commande "Dialogbox".

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DialogBox(0,(LPCTSTR)IDD_HELPBOX,hwnd,(DLGPROC)MenuHelpProc);
    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
    LRESULT CALLBACK MenuHelpProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam)
    {
        int Select;
     
        switch(message)
        {
            case WM_COMMAND:
            {
     
                Select=LOWORD(wParam);
                switch(Select)
                {
                    case ID_HELPOK:                    
                        EndDialog(Dlg,0);
                        return TRUE;
                }
            }
            default:            
                return FALSE;    
        }
    }

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    attend je suis perdu là, c'est une appli MFC ou non ?

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut
    Me suis pose la meme question en voyant le code...

  12. #12
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 53
    Par défaut
    Ben voila...ton message confirme mes doutes.

    Mon application etait une application win32.
    Il y a quelques jours, j ai eu besoin d'utiliser les Cstring. Je suis donc passe en mode MFC, tout naivement!
    Maintenant, je me rends compte compte qu'il va sans doute falloir en faire bien plus pour porter tout ca en MFC ; j'ai commence a lire le tuto ("Démarrer avec les MFC" présent sur le site).

    Donc tu confirmes quíl y a embrouille !

  13. #13
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    je confirme qu'on peut utiliser les classes MFC comme CString dans une api win32,
    sauf que les histoires de classwizards, ca ne convient pas.
    Le principe est quand meme le meme, il te faut intercepter dans ton case le message adéquat, celui proposé par pitch21 étant WM_INITDIALOG

  14. #14
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 53
    Par défaut
    OK, c'est clair.
    Est-il possible de trouver un équivalent win32 avec simple interception de messages pour la plupart de vos examples dans la FAQ Visual C++?
    Par exemple, "Comment changer les caractères en cours de saisie dans un CEdit ?" et "Comment gérer la couleur sur un CEdit ?"

  15. #15
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    c'est la meme chose, il te suffit d'intercepter le WM_CHAR dans la procédure qui sous-classe ton edit

  16. #16
    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
    Citation Envoyé par Mac Twist
    Ben voila...ton message confirme mes doutes.

    Mon application etait une application win32.
    Il y a quelques jours, j ai eu besoin d'utiliser les Cstring. Je suis donc passe en mode MFC, tout naivement!
    Maintenant, je me rends compte compte qu'il va sans doute falloir en faire bien plus pour porter tout ca en MFC ; j'ai commence a lire le tuto ("Démarrer avec les MFC" présent sur le site).

    Donc tu confirmes quíl y a embrouille !
    c'est le tout ça qu'il faut peser !

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

Discussions similaires

  1. [PEAR][HTML_QuickForm] Attribution d'une valeur par défaut à un select
    Par mohican13 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 24/02/2006, 08h08
  2. Réponses: 6
    Dernier message: 14/02/2006, 20h53
  3. [VBA Excel] Remettre toute une feuille par défaut
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/12/2005, 16h56
  4. [MySQL] Comment afficher une image par défaut ?
    Par clicman dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 12/10/2005, 08h46

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