Bonjour,
Je gères une application qui récupères dans 2 hWnd, le contenu de 2 textes provenant de fichier RTF.
Le premier s'appelle hWndRTF et le second hWndRTF2, tous les deux sont crées comme suit :
hWndRTF =CreateWindowEx(WS_EX_STATICEDGE*0,"RichEdit20A", "", WS_CHILD|ES_MULTILINE,0,0,0,0,rtfwin.GetSafeHwnd(),(HMENU)IDS_RTF, hInst, NULL);
J'utilises pour récupérer le contenu les codes suivants :
Pour le premier :
1 2 3 4 5 6 7
| HFILE hFileRTF = OpenFile(name, &ofRTF, OF_READ);
if (hFileRTF==HFILE_ERROR) return false;
eStreamRTF.dwCookie = hFileRTF;
eStreamRTF.dwError = 0;
eStreamRTF.pfnCallback = LoadCallback;
SendMessage(hWndRTF, EM_STREAMIN, SF_RTF, (LPARAM)&eStreamRTF);
CloseHandle((void*)hFileRTF); |
Pour le second :
1 2 3 4 5 6 7
| HFILE hFileRTF2 = OpenFile(name2, &ofRTF, OF_READ);
if (hFileRTF2==HFILE_ERROR) return false;
eStreamRTF2.dwCookie = hFileRTF2;
eStreamRTF2.dwError = 0;
eStreamRTF2.pfnCallback = LoadCallback2;
SendMessage(hWndRTF2, EM_STREAMIN, SF_RTF, (LPARAM)&eStreamRTF2);
CloseHandle((void*)hFileRTF2); |
eStreamRTF et eStreamRTF2 sont deux EDITSTREAM,
et les LoadCallback et LoadCallback2 sont deux procédures comme suit :
1 2 3 4 5
| DWORD CALLBACK LoadCallback(DWORD dwCookie,LPBYTE pbBuff, LONG cb, LONG* pcb)
{
ReadFile((void*)dwCookie, pbBuff, cb, (LPDWORD)pcb, NULL);
return 0;
} |
J'aimerai fusionner le contenu de ces 2 hWndRTF et hWndRTF2 dans un
fichier en conservant le format de chaque texte, donc j'utilise
EM_STREAMOUT, mais je n'arrives pas à les ajouter.
Pour information, j'ai trouvé une solution, mais je perds le format de l'un de ces deux RichedEditText. Quelqu'un aurait-il une piste.
Merci d'avance.
Partager