Accueil > > > [C][RTF] EXEMPLE DE TABLEAU EN RTF (POUR RICHEDIT)
[C][RTF] EXEMPLE DE TABLEAU EN RTF (POUR RICHEDIT)
Information sur la source
Description
Vue qu'il y a beaucoup de demande, pour faire des tableaux et que ce n'est pas très compliqué ^^, je vous met une fonction pour ajouter un tableau de 2 colonnes. pour un tableau de 4 lignes et trois colonnes avec une marge inter cellule le code RTF serais : pour plus amples infos voir spécifications RTF ou ce site : http://www.biblioscape.com/rtf15_spec.htm { \rtf \trowd\ \trgaph70 \cellx2200 \cellx4400 \cellx6600 \intbl toto0 \cell tutu \cell titi \cell \row toto1 \cell tutu \cell titi \cell \row toto2 \cell tutu \cell titi \cell \row toto3 \cell tutu \cell titi \cell \row }
Source
- # //------------------------------------------------------------------------------
- # // Projet : Exemple source RichEdit
- # // Auteur : Hanteville Nicolas
- # // Date de modification : 26/12/2008
- # // Description : procédure de création de tableau de 2 colonne sur une seule ligne
- # // sans formatage de texte dans un RichEdit
- # //------------------------------------------------------------------------------
-
- void RichEditAjouterTableau(HWND HRichEdit,char* cel1,unsigned int tailleCel1,char* cel2,unsigned int tailleCel2)
- {
- //création de la chaine
- char tbuffer[4096];
- unsigned short tailleTxt;
-
- tailleTxt = strlen(cel1) + strlen(cel2);
-
- //mode automatique de gestion de la taille des colonnes
- if (tailleCel1 == 0)
- {
- tailleCel1 = strlen(cel1) * 100 + 200;
- }
- if (tailleCel2 == 0)
- {
- tailleCel2 = strlen(cel2)* 100 + 200;
- }
-
- //création de la chaine
- snprintf(tbuffer,4096,"{\\rtf\\trowd\\trgaph70\\cellx%d\\cellx%d\\intbl %s \\cell %s \\cell \\row}",tailleCel1,tailleCel1+tailleCel2,cel1,cel2);
-
- //init du format du texte (pour éviter de garder le format antérieur dans le tableau)
- // cette partie peut aussi servir à ajouter de la couleur, gras italique, etc..
- CHARFORMAT2 Format; //format du texte d'un richedit
- CHARRANGE Selection; //sélection
-
- ZeroMemory(&Format, sizeof(CHARFORMAT2));
- Format.cbSize = sizeof(CHARFORMAT2);
- Format.dwMask = CFM_COLOR|CFM_CHARSET|CFM_UNDERLINE|CFM_ITALIC|CFM_BOLD|CFM_SIZE;
- Format.crTextColor = 0;
- Format.dwEffects = 0;
- Format.yHeight = 200;
-
- //récupération de la taille du texte contenu, on ajoute le texte après
- GETTEXTLENGTHEX TxtLenfth;
- TxtLenfth.codepage=CP_ACP;
- TxtLenfth.flags=GTL_NUMCHARS;
- unsigned int pos= SendMessage(HRichEdit,EM_GETTEXTLENGTHEX,(WPARAM)&TxtLenfth,0);
-
- Selection.cpMin = pos;
- Selection.cpMax = pos+tailleTxt ; //attention ici il devrais
- // y avoir la taille réel du texte
- // sans le formatage RTF
-
- //mise en place de la zone de sélection
- SendMessage(HRichEdit, EM_EXSETSEL, 0, (LPARAM) &Selection);
-
- //format du text
- SendMessage(HRichEdit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &Format);
-
- //écriture du texte dans le rich edit
- SendMessage(HRichEdit, EM_REPLACESEL,(WPARAM)0,(LPARAM)tbuffer);
- }
# //------------------------------------------------------------------------------
# // Projet : Exemple source RichEdit
# // Auteur : Hanteville Nicolas
# // Date de modification : 26/12/2008
# // Description : procédure de création de tableau de 2 colonne sur une seule ligne
# // sans formatage de texte dans un RichEdit
# //------------------------------------------------------------------------------
void RichEditAjouterTableau(HWND HRichEdit,char* cel1,unsigned int tailleCel1,char* cel2,unsigned int tailleCel2)
{
//création de la chaine
char tbuffer[4096];
unsigned short tailleTxt;
tailleTxt = strlen(cel1) + strlen(cel2);
//mode automatique de gestion de la taille des colonnes
if (tailleCel1 == 0)
{
tailleCel1 = strlen(cel1) * 100 + 200;
}
if (tailleCel2 == 0)
{
tailleCel2 = strlen(cel2)* 100 + 200;
}
//création de la chaine
snprintf(tbuffer,4096,"{\\rtf\\trowd\\trgaph70\\cellx%d\\cellx%d\\intbl %s \\cell %s \\cell \\row}",tailleCel1,tailleCel1+tailleCel2,cel1,cel2);
//init du format du texte (pour éviter de garder le format antérieur dans le tableau)
// cette partie peut aussi servir à ajouter de la couleur, gras italique, etc..
CHARFORMAT2 Format; //format du texte d'un richedit
CHARRANGE Selection; //sélection
ZeroMemory(&Format, sizeof(CHARFORMAT2));
Format.cbSize = sizeof(CHARFORMAT2);
Format.dwMask = CFM_COLOR|CFM_CHARSET|CFM_UNDERLINE|CFM_ITALIC|CFM_BOLD|CFM_SIZE;
Format.crTextColor = 0;
Format.dwEffects = 0;
Format.yHeight = 200;
//récupération de la taille du texte contenu, on ajoute le texte après
GETTEXTLENGTHEX TxtLenfth;
TxtLenfth.codepage=CP_ACP;
TxtLenfth.flags=GTL_NUMCHARS;
unsigned int pos= SendMessage(HRichEdit,EM_GETTEXTLENGTHEX,(WPARAM)&TxtLenfth,0);
Selection.cpMin = pos;
Selection.cpMax = pos+tailleTxt ; //attention ici il devrais
// y avoir la taille réel du texte
// sans le formatage RTF
//mise en place de la zone de sélection
SendMessage(HRichEdit, EM_EXSETSEL, 0, (LPARAM) &Selection);
//format du text
SendMessage(HRichEdit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &Format);
//écriture du texte dans le rich edit
SendMessage(HRichEdit, EM_REPLACESEL,(WPARAM)0,(LPARAM)tbuffer);
}
Conclusion
Si vous avez des remarques ^^
J'espère que ce code viendra en aide aux désireux :p
Historique
- 26 décembre 2008 23:19:47 :
- - changement du titre
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
[PERL]extraction d'informations d'un fichier excel [ par yamra ]
Bonsoir, à tous j'ai un petit problème aidez moi: j'ai un script perl qui me permet d'extraire une colonne de mon fichier excel (excel.xls). Voici le
tri d'un tableau avec Qt [ par anouerensi ]
Salut, s'il vous plait aidez moi a trouver une solution pour acceder aux éléments de ce tableau afin de le trier en utilisant la methode de tri Shell.
un coup de main svt ^^ [ par monsi7 ]
Bonjour je dois realiser un programme qui dans un tableau a 2 dimensions (matrice) recherche le max de chaque ligne puis en prend le minimum(de tous l
Utilisation strcmp avec tableau [ par noname001 ]
Bonjour à tous. Dans le cadre d'un projet que j'ai à réaliser, je dois manipuler la fonction strcmp de cstring.. En effet, j'essaye de l'utiliser pou
mettre une chaine string dans un tableau [ par flowneo ]
bonjour, je voudrais savoir comment mettre lettre par lettre une chaine string dans un tableau ...? merci
c++ : problème de tableau dynamique dans une classe [ par rollingsteen ]
Hello, je dois développer une application permettant de travailler sur de très gros nombres (200 digits) -> les digits sont stockés dans un tableau.
Probleme d'algo pour toutes combinaisons possible d'un tableau [ par arnaud8888 ]
Bonjour à tous, j'ai un problème d'algo ... en gros j'ai un tableau qui contient des valeurs, disons : A B C D j'aurais besoin à la fin de mon algo
opérations sur les tableaux ??? [ par marco62118 ]
bonsoir je n'ai jamais programmé en C++, mais un internaute m'avait fait une dll permettant de faire varier un tableau de valeur en le multipliant par
CBCGPGridCtrl Multiple Selection row [ par dorras7 ]
Bonjour, j'utilise CBCGPGridCtrl en c++ j'ai besoin de savoir l'evénement qui se déclenche lorsque l'utilisateur sélectionne plusieurs lignes (row) M
Trouver l'indice i d'un tableau T[i] en fonction d'une valeur T0, et d'un écart +/- e. [ par intrication ]
Bonjour à tous Voila le topo : J'ai un tableau T2[i] qui contient des floatants. Je recherche pour quel "i" j'ai cette condition de réalisée : Tup-
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|