begin process at 2010 02 10 08:04:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > [C][RTF] EXEMPLE DE TABLEAU EN RTF (POUR RICHEDIT)

[C][RTF] EXEMPLE DE TABLEAU EN RTF (POUR RICHEDIT)


 Information sur la source

Note :
Aucune note
Catégorie :Application Classé sous :HRichEdit, RTF, tableau, cell, row Niveau :Débutant Date de création :26/12/2008 Date de mise à jour :26/12/2008 23:19:47 Vu :2 437

Auteur : omnia

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note


 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

Source avec Zip [WMI][C++][DEV-C++] LECTURES D'INFORMATIONS AVEC WMI SOUS DE...
Source avec Zip [WIN32][C][DEV-C++] AUTO LIST EN HTML
Source avec Zip Source avec une capture [WIN32][C][DEV-C++] GRAPH TRANSPARENT DEBIT RESEAU
Source avec Zip Source avec une capture [WIN32][C][DEV-C++] WSEARCH GOOGLE HACK
Source avec Zip Source avec une capture [WIN32][C][DEV-C++]MIBREAD SNMP LECTEUR DE MIB RESEAU

 Sources de la même categorie

GESTIONNAIRE DE BIBLIOTHEQUE par eishtein
FICHIER ALBUM MUSICAL par imenouuuuuuuuuche
LOUISDU81 HTTP EDITOR par louisdu81
Source avec Zip Source avec une capture Source .NET (Dotnet) CLIENT IRC BASIQUE par king67
Source avec Zip CONVERTISSEUR NOMBRE ARABE => NOMBRE ROMAIN (1 À 4999) par Calli95

 Sources en rapport avec celle ci

TRIANGLE DE PASCAL ET DEVELLOPEMENT DE POLYNOME par Individu
Source avec Zip AUTOMATION DE EXCEL ENTIEREMENT EN WIN32 ET SOUS FORME DE CL... par SnOOpss
GÉNÉRATION D'UNE LISTE DES COMBINAISONS SANS RÉPÉTITION D'ÉL... par AlexN
TABLEAU 3D GÉNÉRIQUE par xkamen
Source avec Zip RICHEDIT: CHARGEMENT ET SAUVEGARDE EN RTF (WIN32) par gagah1

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


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-


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,749 sec (4)

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