deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 2016
-
5 août 2007 à 17:39
schap25
Messages postés21Date d'inscriptionmercredi 21 mai 2008StatutMembreDernière intervention28 mai 2008
-
27 mai 2008 à 15:01
Yop à tous,
Voila , ceci est p-e une question stupide mais j'ai chercher après un message qui me permet de récupérer le text d'une selection faite avec EM_SETSEL, j'ai pensé naïvement EM_GETSEL, mais cela n'a rien a voir, cela renvoie les positions de départ et de fin de la sélection. Quelqu'un a une idée ?
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 5 août 2007 à 18:10
Ben tu pourrais utiliser EM_GETLINE puis EM_GETSEL pour savoir quel endroit est sélectionné (il te renvoie les index des premier et dernier+1 caractères).
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 5 août 2007 à 19:02
C'est ce que je dis : tu récupère toute la ligne dans un buffer et ensuite tu te places au bon endroit avec les index fournis par EM_GETSEL. Du genre :
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 5 août 2007 à 19:59
Salut,
Tu peux utiliser GetWindowText() pour récupérer tout le texte dans un buffer. Le texte sélectionné commence à buffer+debut et finit à buffer+fin. Tu mets un 0 final dans buffer+fin pour terminer la chaine. Il y'a aussi le message EM_GETHANDLE qui permet de retrouver la zone mémoire occupée par le texte. Tu peux l'utiliser pour ne pas allouer un buffer obligatoire pour GetWindowText().
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 5 août 2007 à 20:13
Salut,
racpp> pour le coup du WM_COPY, je pense que c'est une mauvaise idée
de modifier le contenu du clipboard sans que ca soit en réponse a un
evenement de l'utilisateur. Le clipboard perd tout son interet si un
prog modifie aleatoirement son contenu.
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 6 août 2007 à 20:10
Merci,
Je vien d'aller voir pour EM_GETHANDLE, l'utilisation est fort simple, mais ce que je ne comprend pas, c'est ce que renvoie ce message, oui ok c'est un handle, mais pas un pointeur, donc comment je fait pour retrouver l'adresse de la zone en mémoire. Pour moi les handles on tjrs été associé a un identifiant :s
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 6 août 2007 à 20:43
EM_GETHANDLE permet de retrouver le handle de la mémoire occupée par le texte du controle. C'est un handle car cette zone mémoire n'est pas toujours la même. Elle peut être déplacée dans certains cas. Le handle reste le même mais la zone mémoire pointée change donc. C'est justement le role de LocalLock() qui permet d'interdire tout déplacement de cette zone et retourne un pointeur que tu pourras utiliser. Pour permettre de nouveau le déplacement de cette zone utilise LocalUnlock().
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 6 août 2007 à 21:03
Hey c'est géniale ça :D exemple pour une recherche , plus besoins de ce cassé la tête ,on peut charger 1Mo par 1Mo le contenut dans une editbox et on fait la recherche directement dans ce buffer en mémoire :D Daccord cela implique de charger tout le contenut d'un fichier dans une édit box, mais je pense que cela peut simplifier pas mal les choses .
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 6 août 2007 à 21:17
Pas vraiment pour une recherche. Mais exemple tu veux chercher dans un fichier avec une syntaxe, mettons tous les liens. Tu pourrai faire la recherche en chargant ton fichier de succesivement dans un buffer de 1 Mo et faire ta recherche dedans (un peux comme la source de brunews findinfile), mais ici le hic c'est que tu sais par exemple recherche une balise (exemple : <link>) mais l'ennui c'est que tu ne sais pas le nombre de caractère que compose le lien ce qui est une inconnue majeur (exemple : <link>youplaboum</link> ou <link>yop</link>). Cela peut compliquer bcp les choses. La deuxième serait d'allouer une variable de la taille du fichier et de faire la recherche dans ce buffer, mais si la taille du fichier est assez conséquente cela n'est pas une bonne idée. Je ne sais pas si tu m'as vraiment compris lol.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 6 août 2007 à 21:54
De toutes facons si le fichier est gros tu as le même problème si tu utilises un edit, et le texte qui est dans l'edit est bien stocké quelque part. Même si toi tu n'alloue que 1Mo, le système va lui allouer au moins la taille du fichier. Donc c'est toujours plus efficace d'allouer directement la taille du fichier.
schap25
Messages postés21Date d'inscriptionmercredi 21 mai 2008StatutMembreDernière intervention28 mai 2008 27 mai 2008 à 15:01
Bonjour, je cherche moi aussi a prendre le texte d'une selection, afin
de la mettre dans un tableau pour ensuite changé certain caractère (par
exemple: on clique sur un icone nommer "répertoire", on clique sur
renommer, on selectionne le nom, on lance le programme et on obtient
"repertoire").
Et je suis allé sur msdn, et je ne comprend ni l'utilisation de getwindowtext(), ni celle de EM_GETHANDLE..
Un camarade codeur aurait-il les connaissance me permettant de comprendre ?