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

Visual C++ Discussion :

Afficher une fen�tre OUVRIR DOCUMENT


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Par d�faut Afficher une fen�tre OUVRIR DOCUMENT
    Bonsoir � toutes et � tous,
    je travaille sur projet, qui n�cessite de programmer via une Interface Graphique un microcontr�leur, pour effectuer diverses t�ches. Cela va de l'acivation ou non d'Entr�e/sorties num�riques, ou analogiques, pour activer ou non l'alimentation d'un projecteur, d'une cam�ra, ...
    Toute cette partie est faite, et march parfaitement. Aujourd'hui, on m'a demand� depouvoir charger ou d'enregistrer le/les programmes, pour avoir des mod�les tout pr�t, plus qu'� charger. Cela �vitera des erreurs de syntaxes, pour la programmation d'une mission.
    Je voudrais utiliser le m�me principe que les boutons Ouvrir, et Enregistrer Sous, de Windows, pour aller chercher un programme, ou sauvegarder un programme.
    Le principe est bien, mais les seuls infos que je trouve, c'est comment naviguer dans les r�pertoires, comment ouvrir sauvegarder un fichier, alors que moi, je voudrais avoir une fen�tre montrant l'arborescence des fichiers, pouvoir naviguer dedans, et sauvegarder les mod�les par exemple.

    Est ce que quelqu'un pourrait m'aider sur ce sujet. Me donner des pistes.

    Merci d'avance.

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Je ne sais pas si j'ai tr�s bien compris la question, mais sous Windows, on utilise les fonctions GetOpenFileName() et GetSaveFileName().
    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
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 295
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 295
    Billets dans le blog
    2
    Par d�faut
    En effet tu ne fournis pas assez de d�tails.
    Quel est ton environnement de dev (systeme d'exploitation, lib graphique, etc.) ?
    Quel est ton probl�me (probl�me de chargement/sauvegarde de fichiers, d'interpr�tation de fichier, IHM, ...) ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Par d�faut
    Bonjour � toutes et � tous,
    j'y ai pens� hier soir apr�s parti du boulot, que j'avais oubli� de dire sur quel syst�me je travaill�.
    Je programme mon IHM avec le logiciel Microsoft Visual C++ 6.0, en WinAPI.
    Je suis sous Windows 2000 pro et xp, pour faire tourner mon application.

    Dans mon IHM, sur la page de programmation d'une mission, j'ai rajout� 2 boutons, un pour ouvrir un fichier, et le second pour sauvegarder un fichier.
    L'extension du fichier n'est pas important, j'en ferais un sp�cifique, car il ne sera lu qu'avec mon programme.
    Je voulais afficher, lorsque je clique sur ces boutons, une autre fen�tre avec l'arborescence des fichiers (tous les noms de documents de C:, D:, D:\toto, ...), � gauche de ma fen�tre, et � droite, les noms de fichiers contenus dans le r�pertoire.
    C'est en fait le m�me principe que pour windows avec word, excel, ...

    Je vais creuser du c�t� de GetOpenFileName() et GetSaveFileName().
    Merci bien

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Par d�faut
    Bonsoir � toutes et � tous,

    Pour mon projet, je dois faire �voluer une IHM d�j� existante. Je l'ai d�j� pas mal �toff�, mais l� je bute sur une fonction. Je dois programmer un syst�me, pour effectuer une mission. Sur cette fen�tre, je dois pouvoir enregistrer et charger un programme.
    J'ai rajout� 2 boutons pour cela, sur mon IHM. J'ai r�ussi aujourd'hui, � enregistrer mon programme dans un r�pertoire, au format *.csv, en donnant un nom � ce programme via mon IHM.
    Maintenant il me faut pouvoir ouvrir les fichiers cr�es, pour exploiter son contenu. J'ai utilis� GetOpenFileName, pour ouvrir une fen�tre windows permettant de choisir le programme � ouvrir, et lorsque j'ouvre mon fichier, je retrouve dans le titre de ma fen�tre tout le code de mon fichier.

    Voici le code utilis� :
    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
    30
    31
    32
    33
    34
    35
    36
    case WM_COMMAND:
                if(LOWORD(wParam) == IDM_OPEN)
                  {
     
                    OPENFILENAME ofn;
                    CHAR szFile[MAX_PATH]={0};
                    ZeroMemory(&ofn, sizeof(OPENFILENAME));
    #ifdef OPENFILENAME_SIZE_VERSION_400
                    ofn.lStructSize = OPENFILENAME_SIZE_VERSION_400;
    #else
                    ofn.lStructSize = sizeof(OPENFILENAME);
    #endif
                    ofn.hwndOwner = hwnd;
                    ofn.lpstrFile = szFile;
                    ofn.nMaxFile = sizeof(szFile);
                    ofn.lpstrFilter =
                               "Fichier source Programmes\0*.csv\0";
                    ofn.nFilterIndex = 1;
                    ofn.Flags =
                           OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
                    if (GetOpenFileName(&ofn)==TRUE)
                     {
                        HANDLE hf;
                        DWORD FileSize,nbcharRead ;
                        char *buffer;
     
                        hf = CreateFile(szFile, GENERIC_READ, 0,NULL,
                                        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
                        FileSize = GetFileSize(hf, NULL);
                        buffer = (char*)LocalAlloc(LMEM_FIXED, FileSize+1);
                        ReadFile(hf, buffer, FileSize, &nbcharRead, NULL) ;
                        buffer[FileSize] = 0;
                        SendMessage(hEdit, WM_SETTEXT, 0, (LPARAM)buffer);
                        LocalFree(buffer);
                        CloseHandle(hf);
                     }
    En mettant en commentaire la ligne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    SendMessage(hEdit, WM_SETTEXT, 0, (LPARAM)buffer);
    je ne retrouve plus mon code dans l'ent�te de la fen�tre.

    Voyant cela, j'en conclue que la valeur (LPARAM)buffer contient le programme de mon fichier. Je voudrais r�cup�rer ce code, le mettre dans un fichier texte, et l'exploiter par la suite.
    Pour cela, j'ai cr�� un fichier "C:\\Prog.txt", dans lequel je viens mettre le contenu de (LPARAM)buffer. C'est la seule variable, qui pour moi, contient le code du programme, d'apr�s les constatations de tout � l'heure.

    Par cons�quent, j'ai rajout� le code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    ReadFile(hf, buffer, FileSize, &nbcharRead, NULL) ;
    fprintf(f,"%s", (LPARAM)buffer);
    Le probl�me de cette m�thode, c'est que (LPARAM)buffer est un long, et que je lui demande d'�crire une cha�ne de caract�res.
    J'ai voulu transformer ce long en cha�ne de caract�res avec
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    sprintf(tempo, (LPARAM)buffer);
    fprintf(f, "%s", tempo);
    avec tempo d�clar� comme un cha�ne de caract�res ayant une taille de 1000.
    Mais il n'y a aucun r�sultat dans le fichier, malgr�s toutes ces manipulations.

    Est ce que quelqu'un pourrait m'aider � r�cup�rer ce programme, pour que je puisse l'exploiter, s'il vous plait.

    Je travaille sous Microsoft Visual C++ 6.0, sous Windows 2000 et xp. Je programme en Win API.

    Merci d'avance

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Avec la fin de ton message, on dirait que tu programmes au hasard et que tu ne sais m�me pas ce que fait le code que tu as post�.
    buffer est un char*, pointant sur une zone m�moire allou�e avec LocalAlloc(), et renfermant tout le contenu du fichier...
    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.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 29/04/2011, 10h51
  2. afficher une fen�tre dans le thread
    Par LN(a) dans le forum Langage
    R�ponses: 8
    Dernier message: 21/12/2005, 13h21
  3. Afficher une Fen�tre MDI � partir d'une DLL
    Par FredericB dans le forum C++Builder
    R�ponses: 2
    Dernier message: 06/12/2005, 16h58
  4. Afficher une fen�tre d'informations qui donne l'impression de se d�t�cher
    Par jean_bobi dans le forum Agents de placement/Fen�tres
    R�ponses: 11
    Dernier message: 25/09/2005, 15h31
  5. R�ponses: 1
    Dernier message: 16/02/2005, 12h04

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