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);
}
}