Insertion d'un Chaine de caractére dans un richedit problème. [Résolu]

Signaler
Messages postés
118
Date d'inscription
mercredi 24 décembre 2003
Statut
Membre
Dernière intervention
11 décembre 2011
-
cs_TeniX
Messages postés
118
Date d'inscription
mercredi 24 décembre 2003
Statut
Membre
Dernière intervention
11 décembre 2011
-
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 correctement affiché.
J'obtiens des caractères type chinois ou autre à la place.

Code:

LoadLibrary(TEXT("Msftedit.dll"));
InitCommonControls();

//CREATION DU RICHEDIT

hWndList= CreateWindowEx(0, MSFTEDIT_CLASS, TEXT(""),
ES_MULTILINE | WS_VISIBLE | WS_CHILD | WS_BORDER | WS_TABSTOP,
0, 0, GetWindowSizeX(hWnd), GetWindowSizeY(hWnd),
hWnd, NULL, hInst, NULL);

// AJOUT DU TEXTE

CHARRANGE cr;
cr.cpMin = -1;
cr.cpMax = -1;
SendMessage(hWndList, EM_EXSETSEL,0,(LPARAM)&cr);
SendMessage(hWndList, EM_REPLACESEL,0,(LPARAM)"chaine de test\n");

Note si j'ajoute caractère par caractère cela marche :

SendMessage(hWndList, EM_REPLACESEL,0,(LPARAM)"A"); // ETC

Je suis sous Win7 et VS2010.
Si vous avez des idées.
Merci d'avance.

3 réponses

Messages postés
118
Date d'inscription
mercredi 24 décembre 2003
Statut
Membre
Dernière intervention
11 décembre 2011

Bon j'ai trouver enfaite , il faut sélectionner dans les propriété du projet (VS2010) :

Charactere Set : Use Multi-byte Charactere Set

Merci pour l'aiguillage BruNews.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
ANSI ou UNICODE ???

ciao...
BruNews, MVP VC++
Messages postés
118
Date d'inscription
mercredi 24 décembre 2003
Statut
Membre
Dernière intervention
11 décembre 2011

Il semble que le contrôle est en UNICODE , si je fait :

IsWindowUnicode(hWndList)


Il me renvoi TRUE.

Dans ce cas , je doit convertir ma chaine en UNICODE avant de l'envoyer ?