begin process at 2012 02 08 20:48:29
  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 :5 357

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 Source avec une capture [WIN32][CB]CRÉATION DIRECTE DE PDF
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

 Sources de la même categorie

Source avec Zip Source avec une capture CONTACTS MANAGER par eapaceinfo
Source avec Zip Source avec une capture CONTACTES BOOK par mature
Source avec Zip Source avec une capture [C++/QT] SLIDEALWAYS, RÉALISEZ DES SLIDES POUR VOTRE SITE AV... par doderic
Source avec Zip Source avec une capture MAILLAGE 3D (VTK + QT) par ammoun007
Source avec Zip Source avec une capture CONVHTML : UN UTILITAIRE DE CONVERSION POUR FICHIERS HTML par pgl10

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture RÉSOLUTION SUDOKU (9X9) PAR BACKTRACKING RÉCURSIF INTELLIGEN... par Gallien69
Source avec Zip Source avec une capture ALGORITHME DE TRI D'UN TABLEAU PAR ORDRE CROISSANT OU DÉCROI... par Thuzhen
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

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Récupérer résultat d'une requête SQL dans un tableau? [ par Juju1988 ] Bonjour Je débute en C et je cherche à récupérer le résultat de ma requête SQL dans un tableau en C. Je crois qu'il faut utiliser mysql_fetch_row ... [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


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

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

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