!!! Pb SendMessage !!!

yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 4 déc. 2004 à 17:39
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 4 déc. 2004 à 21:09
Salut,

voilà le pb, je souhaite inclure des smileys dans un richedit par api et j'ai trouvé un truc intéressant, EM_PASTESPECIAL.
Le pb est que ça ne fonctionne pas.
Malgrè ça impossible de mettre un smiley dans la richedit.
Voilà le code:

char str[]="";
OpenClipboard(FenetrehWnd);
EmptyClipboard();
SetClipboardData(CF_BITMAP, img_deco);
CloseClipboard();
int rep=SendMessage(RichEdithWnd[2], EM_CANPASTE, CF_BITMAP, 0);
sprintf(str,"%d",rep);
MessageBox(NULL, str,"",0);

REPASTESPECIAL reps = {0, 0};
SendMessage(RichEdithWnd[2], EM_PASTESPECIAL, CF_BITMAP, (LPARAM) &reps);

Dans ce code, img_dec est un HBITMAP qui fonctionne sûr car j'arrive à l'afficher sur un bouton.
FenetrehWnd est le handle de ma fenêtre (facile) ;-).
RichEdithWnd[2] est le handle du richedit où je veux mettre un smiley au format bitmap.
Ce que j'affiche avec la messagebox est la réponse du sendmessage avec EM_CANPASTE qui autorise à coller un type de fichier (ici CF_BITMAP) dans un richedit si la valeur retournée est différente de zéro.
Le problème est qu'elle me retourne toujours zéro y compris avec un format texte de base (CF_TEXT).
Bizarre non !?

Merci d'avance.

YOYO,@+.
:big) YOYO ;)

5 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
4 déc. 2004 à 18:03
char str[]="";

Je ne vais pas plus loin: tu déclares un tableau de 1 élément, donc les sprintf d'après ne vont pas très bien marcher

As-tu déja essayé de faire un copier coller simple (CF_TEXT)? Je crois qu'il faut utiliser les fonctions GlobalLock et GlobalUnlock à un endroit
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
4 déc. 2004 à 19:29
Merci de ta réponse vecchio56,

mais apparemment t'as pas lu ce que j'ai écrit.
Le sendmessage avec em_canpaste retourne zéro à chaque fois, même avec cf_text.
Ce qui signifie que le richedit n'accepte pas les copier-coller de texte ou de bitmap par code, mais par contre il accepte le coller texte avec Ctrl+V. (Bizarre je sais).

YOYO,@+.
:big) YOYO ;)
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
4 déc. 2004 à 20:29
Salut,
Je pense qu'il faut vérifier d'abord si le collage a été correctement fait en examinant le HANDLE de retour de la fonction SetClipboardData(). S'il est égal à 0, alors il faudra en chercher la cause.
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
4 déc. 2004 à 20:31
Désolé, pas le "collage" mais plutôt la mise des données dans le clipboard
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
4 déc. 2004 à 21:09
Merci d'avoir répondu racpp,

mais j'avais oublié de dire que la mise de l'image HBITMAP dans le presse-papier se passe bien car quand je fais un coller dans word, ça affiche l'image que j'avais mise dans le clipboard.
Donc si tu as autre une suggestion, vas-y envoye.
Tout sera le bienvenu.

YOYO, @+.
:big) YOYO ;)
0
Rejoignez-nous