C++ RichEdit

Résolu
cs_joh Messages postés 54 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 6 juin 2005 - 11 févr. 2005 à 15:44
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 15 févr. 2005 à 09:20
Bonjour,
Je suis entrain de programmer (ss visu6)un RichEdit , j arrive a peut pres a tout faire
sauf changer la Police,ci quelqu 'un c'est comment ?

Aussi j essai de savoir comment sauvegarder le texte taper ds un RichEdit en Format rtf ???

Merci d'avance

7 réponses

yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
11 févr. 2005 à 18:54
Pour sauvegarder au format RTF je sais pas et si tu trouves ça m'intéresserait.
Par contre pour la police je sais.
Voilà un bout de code pour t'aider :

CHARFORMAT2 Format;
CHARRANGE Selection;
ZeroMemory(&Format, sizeof(CHARFORMAT2));
Format.cbSize = sizeof(CHARFORMAT2);
Format.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE | CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;
Format.dwEffects = 0;
Format.yHeight = 170;
Format.yOffset = 0;
Format.crTextColor = RGB(0,0,0); //Couleur du texte
Format.bCharSet = ANSI_CHARSET;
Format.bPitchAndFamily = DEFAULT_PITCH;
sprintf(Format.szFaceName, "%s", "MS Sans Serif"); //Ici pour la police
Selection.cpMin = 0; //borne inférieure
Selection.cpMax = strlen(TexteContenuDansLeRichEdit); //et supérieure du texte sélectionné
SendMessage(Handle, EM_EXSETSEL, 0, (LPARAM) &Selection); //sélectionner
SendMessage(Handle, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &Format); //appliquer le format au texte sélectionné

Si tu as des questions dessus, hésite pas et tiens-moi au courant.

YOYO, @+.
YOYO
3
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
12 févr. 2005 à 16:07
Salut,

Pour sauvegarder le contenu d'un Richedit en RTF il faut: déclarer une
structure EDITSTREAM, créer le fichier, définir quelques membres de la
structure puis envoyer le message EM_STREAMOUT au HWND du RichEdit. Ce
message permet l'exécution d'une procédure qui écrit dans le fichier.
Pour finir, on ferme le fichier. Voici un exemple:

Ici la procédure qui écrit dans le fichier:

DWORD CALLBACK RTFSaveStreamCallback( DWORD dwCookie, LPBYTE lpBuffer,LONG lSize, ULONG *plRead )

{

if( ! lSize ) return( 1 );

*plRead = 0;

WriteFile( (HANDLE)dwCookie, lpBuffer, lSize, plRead, NULL );

return( 0 );

}



Quelque part dans ton code:

EDITSTREAM es;

HANDLE Hfichier=CreateFile( "c:\\nom.rtf", GENERIC_READ | GENERIC_WRITE, 0, 0,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,0 );

es.dwCookie = (DWORD)hFichier;

es.dwError = 0;

es.pfnCallback = (EDITSTREAMCALLBACK)RTFSaveStreamCallback;

SendMessage(hRichedit, EM_STREAMOUT, SF_RTF, (LPARAM)&es );

CloseHandle( hFichier);
3
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
12 févr. 2005 à 16:13
Merci racpp,

pour l'info sur l'enregistrement en RTF.
Ca me sera sûrement très utile.

YOYO, @+.
YOYO
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
12 févr. 2005 à 16:20
Désolé pour la petite erreur: il faut remplacer "hfichier" par "hFichier".
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_joh Messages postés 54 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 6 juin 2005
14 févr. 2005 à 10:12
Merci beaucoup YOYO269 et RACPP ,je vais faire sa dessuite,bonne continuation et on se revera peut etre sur cpp france.
@++
0
cs_joh Messages postés 54 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 6 juin 2005
14 févr. 2005 à 15:15
re


Bon niquel pour la Police ,mais pour l enregistrement en format RTF ou récupérer les données du RichEdit en format rtf ,j arrive pas a faire fonctionner en MFC .Certain parametre me manque ,,,,,?
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
15 févr. 2005 à 09:20
Pourtant j'ai testé le code de racpp sous Dev-C++ et avec qq modifications ça fonctionne nickel. (au passage merci racpp)

YOYO, @+.
YOYO
0
Rejoignez-nous