bonjour à tous,
je sais que ça ne doit pas être bien difficile à faire, mais je n'arrive pas à trouver comment copier une CString dans le clipboard (presse papier en francais, je crois).
merci.
bonjour à tous,
je sais que ça ne doit pas être bien difficile à faire, mais je n'arrive pas à trouver comment copier une CString dans le clipboard (presse papier en francais, je crois).
merci.
salut, voir OpenClipboard, SetClipboardData
Envoyé par msdn
ouch!! je pensais pas que c'était si complexe!!
enfin bon, soit. Mais il ya tout de même quelques trucs que je ne comprends pas:
1/ c'est quoi cch?
2/ c'est quoi pbox?
3/ c'est quoi ich1?
merci pour la rapidité de ta réponse![]()
![]()
ok,
alors si j'ai bien compris:
1/ cch=longueur de ma chaine de caracteres
mais pour 2/ et 3/, je vois pas
et quel doit être le type de lptstrCopy? J'ai essayé LPVOID, mais bien sur, ça ne marche pas.
re, en fait c'était un extrait de http://msdn.microsoft.com/library/de...eclipboard.asp
en fait, le principe c'est de faire :
un globalAlloc pour allouer la mémoire
un GlobalLock pour la réserver pour l'utilisation
de copier la valeur dans la mémoire
un GlobalUnlock pour liberer la ressource
un OpenClipboard pour ouvrir le presse papier
un SetClipboardData pour envoyer dans le presse papier
et un CloseClipboard() pour fermer le presse papier
aller, pour le plaisir, j'ai fait un exemple
Copie le nom du l'executable dans le presse papier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 DWORD len; HGLOBAL hgbl; char temp[MAX_PATH]; char *pmem; len = GetModuleFileName(NULL,temp,MAX_PATH); if (!len) return 0; hgbl = GlobalAlloc(GHND, len + 1); if(!hgbl) return 0; pmem = (char*)GlobalLock(hgbl); strcpy(pmem,temp); GlobalUnlock(hgbl); OpenClipboard(NULL); EmptyClipboard(); SetClipboardData(CF_TEXT, hgbl); CloseClipboard();
ok, ça marche, merci :o)
Partager