begin process at 2012 05 30 15:54:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

RichEdit


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

RichEdit

jeudi 23 mars 2006 à 18:35:57 | RichEdit

ncoder

Bonjour à tous,

Dans un de mes programmes, j'ai un RichEdit.
J'y ajoute du texte auquel je mets la couleur que je veux.
Le seul problème est que dès que je change la police de caractère de ce RichEdit, les couleurs ne s'affichent plus !!!

Voici le code :

 // chargement du contrôle richedit
 HINSTANCE Dll = LoadLibrary("RICHED32.DLL");
 
 Log = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, RICHEDIT_CLASS, "", WS_CHILD|ES_READONLY|ES_WANTRETURN|
  WS_VISIBLE|ES_MULTILINE|WS_VSCROLL|ES_AUTOVSCROLL|ES_WANTRETURN,
  15, 255, 465, 200, hwnd, (HMENU)10, hThisInstance, NULL);

SendMessage(Log, WM_SETFONT, (WPARAM) Police, MAKELPARAM(TRUE, 0)); ==> sans cette ligne, les couleurs s'affichent sans pb.

Merci de votre aide
jeudi 23 mars 2006 à 18:48:47 | Re : RichEdit

max12

Administrateur CodeS-SourceS
Je ne suis pas sûr, mais je crois que faire SETFONT c'est mal sur un RichEdit car il va faire comme si c'était un éditbox et effacer toutes mises en formes. Il faut utiliser un autre message (mais je ne le connais pas) regarde dans le CHARFORMAT2 te servant à mettre la couleur.

A+

[ Lien ]
MSN : x_men_40(
vendredi 24 mars 2006 à 23:00:00 | Re : RichEdit

Sparow

Réponse acceptée !
Oui, Max12 a raison, il ne faut pas utiliser WM_SETFONT mais envoyer le fond (avec la couleur) depuis une sructure CHARFORMAT2... CHARFORMAT2 Format; memset(&Format, 0, sizeof(CHARFORMAT2)); Format.cbSize = sizeof(CHARFORMAT2); Format.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE | CFM_ITALIC | CFM_SIZE |CFM_UNDERLINE; Format.dwEffects = 0; // style (gras/italique/souligné // CFM_BOLD/CFM_ITALIC/CMF_UNDERLINE Format.crTextColor = RGB(255, 0, 0); // la couleur du texte : 255, 0, 0 => rouge Format.yHeight = 180; // la hauteur du texte Format.yOffset = 0; Format.bCharSet = ANSI_CHARSET; Format.bPitchAndFamily = DEFAULT_PITCH; strcpy(Format.szFaceName, "Arial"); // où "Arial" est la police à utiliser SendMessage(hwnd/*HWND du richedit*/, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &Format); // Envoie la police (Format) au richedit
samedi 25 mars 2006 à 19:10:00 | Re : RichEdit

ncoder

Merci à vous deux je vais essayer le code !

A+
dimanche 26 mars 2006 à 18:06:49 | Re : RichEdit

ncoder

Non ça marche pas !!

Que puis-je faire svp ?

Merci
dimanche 26 mars 2006 à 18:56:40 | Re : RichEdit

Sparow

Réponse acceptée !
Crée un CHARFORMAT2 comme expliqué dans mon dernier message et envoie le a cette fonction : bool add_text(const HWND &hwnd/*Le HWND de ton RichEdit*/, string new_txt/*le texte à ajouter*/, CHARFORMAT2 Format/le CHARFORMAT2 créé plus haut^^*/) { #ifdef WIN32 SendMessage(hwnd, EM_SETSEL, (WPARAM)length, (LPARAM)length); // crée un point d'insertion #else SendMessage(hwnd, EM_SETSEL, 0, MAKELONG(length, length)); #endif SendMessage(hwnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &Format); SendMessage(hwnd, EM_REPLACESEL, 0, (LPARAM)(LPCTSTR)new_txt.c_str()); //SendMessage(hwnd, WM_VSCROLL, SB_BOTTOM, 0); // fait descendre automatiquement le scroll de ta RicheEdit return 0; }
lundi 27 mars 2006 à 02:40:48 | Re : RichEdit

Sparow

Il faut aussi que tu utilises "InitCommonControls()" avt de charger "RICHED32.DLL": InitCommonControls() (aucun argument) défini dans "commctrl.h" Ca marche, j'ai tapé cette fonction (add_text() ^^) pour ajouter du texte dans un richedit multicolore d'un de mes programmes (chat) Après, si ça va tjrs pas, balance du code :d A+
lundi 27 mars 2006 à 09:26:37 | Re : RichEdit

ncoder

Merci je regarde tout ça

lundi 27 mars 2006 à 09:31:44 | Re : RichEdit

ncoder

J'ai traduit ta fonction en C, pas de problèmes, tout marche !

Merci beaucoup de ton aide !

A+


Cette discussion est classée dans : couleurs, ws, police, richedit, affichent


Répondre à ce message

Sujets en rapport avec ce message

rafraichissement fenetre, ou creation de fenetre dans fenetre [ par kuruma ] Bonjour qq'un pourrait il m'indiquer comment créer une fenetre dans une autre fenetre, ou alors comment allouer une zone de ma fenetre principale, en RichEdit problème couleur de fond des lettres [ par TeniX ] Salut, J'ai un probléme pour mètre en couleur le fond du texte Je crée un richedit sous cette forme: Rich = CreateWindowEx(WS_EX_CLIENTEDGE, RICHED Police sous Builder6 [ par popi0016 ] Bonjour s? tous, je voudrais juste savoir s'il existe un composant graphique de type RichEdit ou TEdit qui permette (comme World) d'afficher les carac Couleurs dans le RichEdit [ par JCpp ] Merci BruNews , j'ai enfin résolu mon problème avec : InitCommonControls(); D'après ce que j'ai compris avec «edit» on est obligé de mettre tout le t richedit RICHED20.DLL problem longeur char [ par nanonavich ] pourquoi quand j ecrit dans un richedit box le text est pas la meme longeurexample:aaaaaaaaaabbbbbbbbbdevrais etre pareil mais on Police dans les contrôles [ par ArthurAuguste ] Bonjour, Lorsque je crée dans WM_CREATE un contrôle statique vide par exemple: CreateWindow("STATIC", "", WS_CHILD | WS_VISIBLE, coltail2, lignerep, c Insertion d'un Chaine de caractére dans un richedit problème. [ par TeniX ] Bonjour, Je rencontre un problème pour insérer une chaine de caractères dans un contrôle richedit. En faite le texte est ajouté , mais il n'est pas c Detection en temps réel [ par raikko21 ] Salut tlm! J'aurais besoin de votre aide car je suis un peu perdu, j'ai fait une WindowsForm qui affiche ma webcam dans un pictureBox avec capCreateC Problème avec fichier manifest [ par Sceyllia ] Bonjour à tous, J'aurais besoin de l'avis de connaisseurs en c/c++ pour m'éclairer sur le soucis que j'ai depuis quelques semaines concernant ce morc Quelques problèmes avec MDI quand plusieurs fenêtres filles [ par ArthurAuguste ] Bonjour, Tout d'abord, je n'ai aucun problème lorsque je n'ai qu'une fenêtre fille, mais dès que j'en ai une deuxième je commence à avoir des mélanges


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 5,725 sec (3)

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