begin process at 2012 02 10 19:39:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

GUI

 > 

Problème d'affichage dans une fenêtre hEdit


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème d'affichage dans une fenêtre hEdit

vendredi 4 juillet 2008 à 11:55:39 | Problème d'affichage dans une fenêtre hEdit

piroman14

Bonjour je suis débutant avec les winAPI.
Je n'arrive pas à afficher mon message dans la fenêtre hEdit
J'y suis arrivé par hasard en mettant un MessageBox quelconque après mon SetWindowText(hEdit,message1);
Là le message s'affichait bien dans la fenêtre principale.
Merci de m'aider.




LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    static HWND hEdit;
    static BOOL EditNotChg = TRUE;
    FILE *fp0, *fp1, *fp2;
    FILE *tmpf= 0;      //Opened temp. file
 
 char name[255];
 char ext[7], mode[7];
 unsigned int i, j, k;
 unsigned int imax, jmax, kmax;
 unsigned char pix; 
 char *vtk, *vtkPtr;

 switch (uMsg)
    {
        case WM_CREATE:

            {
             HFONT hFont;

             hEdit = CreateWindow("edit","Pour générer les images acoustiques de votre échantillon : Fichier -> Générer les images acoustiques à partir d'un fichier VTK", WS_CHILD | WS_VISIBLE | ES_READONLY | BS_RIGHTBUTTON | BS_RADIOBUTTON,0, 0, 0, 0, hwnd, NULL, hinst, NULL); //
             hFont = (HFONT)GetStockObject(ANSI_FIXED_FONT);
             SendMessage(hEdit,WM_SETFONT,(UINT)hFont,TRUE);
             SendMessage(hEdit, EM_SETMARGINS, WS_DLGFRAME | EC_LEFTMARGIN | EC_RIGHTMARGIN | ES_MULTILINE | ES_WANTRETURN, MAKELONG(5, 5));
             return 0;
            }

        case WM_CLOSE:
    DestroyWindow(hwnd);
    return 0;

        case WM_COMMAND:

            if(LOWORD(wParam) == IDM_OPEN)
              {
                OPENFILENAME ofn;
                CHAR szFile[MAX_PATH]={0};

                ZeroMemory(&ofn, sizeof(OPENFILENAME));

                ofn.lStructSize =sizeof(OPENFILENAME);
                ofn.hwndOwner = hwnd;
                ofn.lpstrFile = szFile;
                ofn.nMaxFile = MAX_PATH;
                ofn.lpstrFilter ="Fichier  VTK\0*.vtk\0";
                ofn.nFilterIndex = 1;
                ofn.Flags =OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;//
  
                if (GetOpenFileName(&ofn))   //==TRUE

    {  
    //Récupération du chemin du fichier vtk sans l'extension .vtk
    i = 0;   
    while (*(szFile + i) != 0)
    {
       *(name + i) = *(szFile + i);
       ++i;
    }
    *(name + i) = 0; // terminateur par défaut
    while (i > 0)
    {
       --i;
       if (*(name + i) == '\\') break; // pas d'extension
       if (*(name + i) == '/') break; // pas d'extension
       if (*(name + i) == '.')
       {
       *(name + i) = 0; // extension supprimée
     }
    
    }
    
     //Indication du fichier traité
    char message1[255];
    strcpy(message1,"Traitement du fichier : ");
    strcat(message1,szFile);


    SetWindowText(hEdit,message1);
     
      //Ouverture d'un fichier temp.  
      tmpf= scatOpenTempFile();

      //Ouverture des fichiers vtk
      strcpy(ext,".vtk"); strcpy(mode,"rb");
      fp0= scatOpenFile(name,ext,mode);
      strcpy(ext,"X.vtk"); strcpy(mode,"wb+");
      fp1= scatOpenFile(name,ext,mode);
      strcpy(ext,".xls"); strcpy(mode,"wa");
      fp2= scatOpenFile(name,ext,mode);

      //Affichage de l'entete du fichier VTK
      scatHeaderVTK(fp0, fp1, &imax, &jmax, &kmax);

      //Allocation memoire dynamique
      vtkPtr= scatMemAllocVTK(imax, jmax, kmax);
      vtk= vtkPtr;


      //Lecture des echos et reorganisation des data
      scatReadFileVTK(imax,jmax,kmax,fp0,vtk);

      //Traitement des data: lissage + segmentation
      vtk= vtkPtr;
      scatMainProcessing(imax,jmax,kmax,tmpf,fp2,vtk,name);


      fclose(fp0);
      fclose(fp2);


       fclose(fp1);
       fclose(tmpf);
       exit(0);


     //Indication du répertoire où sont rangés les xls, bmp et vtk
     char message2[255];
     strcpy(message2,"Les xls, bmp et vtk sont rangés dans le répertoire : ");
     strcat(message2,name);


     
     SetWindowText(hEdit,message2);

 


     
      //Remise du fichier vtk dans l'ordre initial
      //Lecture des data

      vtk= vtkPtr;
      rewind(tmpf);

      for(i=0;i<imax;i++){
     for(j=0;j<jmax;j++){
       for(k= 0 ; k<kmax; k++) {
     fread(&pix,sizeof(unsigned char),1,tmpf);
     *(vtk+(k*(jmax*imax)+j*imax+i))= pix;  
       }
     }
      }

      //Reecriture
       for(k=0;k<kmax;k++)
      for(j=0;j<jmax;j++)
        for(i= 0; i<imax; i++, vtk++)
      fwrite(vtk,sizeof(unsigned char),1,fp1);

      fclose(tmpf);
      fclose(fp1);

      free(vtkPtr);     
    }
    
   
   }
            if(LOWORD(wParam) == IDM_QUIT) PostMessage(hwnd, WM_CLOSE,0,0);
            if(HIWORD(wParam) == EN_CHANGE) EditNotChg = FALSE;
           
   return 0;

        case WM_SIZE:
             MoveWindow(hEdit, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE);
             return 0;

        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;

        default:
            return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
}

samedi 5 juillet 2008 à 15:56:08 | Re : Problème d'affichage dans une fenêtre hEdit

Pistol_Pete

Salut

Peu de temps après avoir écrit dans ton hEdit, tu bloques l'exécution de ta fonction dans WM_COMMAND puis tu fais un exit(0° ! Tu quittes le programme avant d'avoir la possibilité de l'afficher.

Il faudrait sans doute revoir la structure de ton programme. Sinon met un SendMessage( ... , WM_PAINT,0,0); juste après avoir écrit dans ton Edit.

A+
Mon site internet : [ Lien ]



Cette discussion est classée dans : name, char, ofn, hedit, vtk


Répondre à ce message

Sujets en rapport avec ce message

Conserver messages dans hEdit à chaque envoi de nveau message [ par piroman14 ] Bonjour tout le monde:Dsl mais je suis toujours aussi mauvais en winAPI depuis la dernière fois.Mon problème est que je n'arrive pas à conserver les m eNVIYER DES MESSAGES DANS UNE FENËTRE HeDIT [ par piroman14 ] Bonjour je souhaiterais envoyer des messages au moyen de la fonction SendMessage dans la fenêtre déjà existante hEdit.L'aide n'est pas très fournie. J Problème d'affichage avec la fonction SetWindowText [ par piroman14 ] Hi everybody!!Quelqu'un pourrais-t-il m'expliquer pourquoi si SetWindowText(hEdit,"Traitement en cours..."); est avant   if (GetOpenFileName(&ofn)==TR tableau de chaines [ par ashboody ] const char * Ini_GetPrivateProfileString (...);mytype myfunc (char **RegisteredChannels_Name);{strcpy( RegisteredChannels_Name[ChannelIndex], Problème de récupération de chemin valide [ par piroman14 ] Noobinho is back!!!Je souhaite faire une interface graphique pour un programme que j'ai fait en console et qui marchait correctement.La seule saisie à Problème pour iconiser une application [ par piroman14 ] Noobinho one again!!Bonjour tout le monde!Je serais très reconnaissant si vous pouviez m'aiguiller pour ce programme.Je souhaite iconiser mon applicat boîte de dialogue "ouvrir" [ par imanewin32 ] je crée une boite de dialogue avec le code suivant:int CFalEtiCoupeView::dlgFileOpen(HWND hOwner, char* fName, const char* Filter, const char* dlgCapt Problem lecture/ecriture fichier bmp [ par Laurdoue ] Bonjour, je suis en train de lire et écrire avec une image en bmp ma fonction d'écriture et de lecture fonctionne bien uniquement avec des image de di n'arrive pas à utiliser ma fct affiche!! [ par nelly77 ] #includeusing namespace std;class CPersonne{protected:    char* nom;public:    CPersonne(char* name);    void setNom(char* name);    void affiche();}; getoenfilename -> ??? [ par stefbuet ] salut,sur une source (http://www.cppfrance.com/code.aspx?ID=28478)j'ai extrait une fonction de la librairy créé et ais essayé de la faire fonctioner,


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales