Accueil > Forum > > > > Edit control et mouse over
Edit control et mouse over
mardi 27 février 2007 à 15:41:42 |
Edit control et mouse over

youpiyoyo
|
je cherche a recuperer une chaine de caractères (ou un mot) dans une edit control ou rich edit peut importe lorsque je passe la souris dessus...
j'ai déjà sous classé mon edit control par prev_proc = SetWindowLongPtr(hDlist, GWLP_WNDPROC, (LONG)EditWindProc); ou
hDlist pointe sur le HWND de l'edit control, ceci tant créer pour pouvoir capturer le mousemove. bref j'arrive a ca: Commentaire:
IDC_EDIT2 me permet de controler les lignes selectionner
LRESULT CALLBACK EditWindProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam) { switch (message) {
case WM_MOUSEMOVE: { POINTS ptsCursor; int nCurrentLine=0; int nCharWidth = 0; int nLastLine=0; ptsCursor = MAKEPOINTS(lParam); nLastLine = SendMessage(hWnd,EM_GETLINECOUNT,0,0); /*hdc = GetDC(hWnd); GetCharWidth32(hdc, (UINT) wParam, (UINT) wParam, &nCharWidth); ReleaseDC(hWnd, hdc);*/ nCurrentLine = min((int)(ptsCursor.y / dwLineHeight), nLastLine); //ou
dwLineHeight calculer dans WM_INITDIALOG et est égal a tm.tmHeightou tm est un TEXTMETRIC...
int pos = SendMessage(hWnd, EM_LINEINDEX, nCurrentLine, 0); pos = SendMessage(hWnd, EM_LINELENGTH, pos, 0); char * pmem; pmem = (char*) HeapAlloc(GetProcessHeap(), 0, pos + 1); *((WORD*) pmem) = pos; pos = SendMessage(hWnd, EM_GETLINE, nCurrentLine, (long) pmem); pmem[pos] = 0; SetDlgItemTextA (mainhwnd,IDC_EDIT2, pmem);
return (0); } break; }
return CallWindowProc((WNDPROC)prev_proc, hWnd, message, wParam, lParam);
}
bref ca marche mais j'ai trois problemes:  le premier c que ca recupère que la ligne et je cherche a recup le mot, bon ca evidemment j'y suis pas encore mais déjà si je recupere la ligne je peut faire mes tests avec des boucles... le deuxième c que mon min((int)(ptsCursor.y / dwLineHeight), nLastLine); ne fonctionne pas bienles première lignes fonctionnes mais a partir de la 5ème elle se décale, je pense parceque la taille de ma ligne ne correspond pas.
troisèmement lorque la scroll bar rentre en jeux, la evidement le x et le y du POINTS ne correspondent absolument plus aux index de lignes....
voila je galère pour le moment, je suis encore entrain de chercher, mais un coup de pousse m'aiderais bien
merci d'avance
youpi :)
|
|
mardi 27 février 2007 à 16:57:50 |
Re : Edit control et mouse over

youpiyoyo
|
est-ce que un EM_CHARFROMPOSne serait pas ma solution???
avec ca j'arrive pas a grand chose pour le moment: DWORD returnIndex=SendMessage( hWnd,EM_CHARFROMPOS,0,MAKELPARAM(ptsCursor.x,ptsCursor.y));
merci youpi :)
|
|
mardi 27 février 2007 à 19:39:45 |
Re : Edit control et mouse over
|
mardi 27 février 2007 à 19:46:42 |
Re : Edit control et mouse over

youpiyoyo
|
en quoi setfocus pourrai m'aider????
en revanche je reste persuader que EM_CHARFROMPOS est la solution
j'ai essayé ca: WORD vLine=HIWORD(SendMessage( hWnd,EM_CHARFROMPOS,0,MAKELPARAM(ptsCursor.x,ptsCursor.y))); WORD hLine=LOWORD(SendMessage( hWnd,EM_CHARFROMPOS,0,MAKELPARAM(ptsCursor.x,ptsCursor.y)));
DWORD nWordStart = SendMessage(hWnd, EM_FINDWORDBREAK, WB_LEFT, hLine); DWORD nWordEnd = SendMessage(hWnd, EM_FINDWORDBREAK, WB_RIGHTBREAK, hLine);
mais nWordStart et nWordEnd reste toujours a zero
youpi :)
|
|
Cette discussion est classée dans : int, edit, hwnd, pos, pmem
Répondre à ce message
Sujets en rapport avec ce message
ressources et API !!!! [ par Xs ]
salut !voila, pour me simplifier la tache, j'utlise les ressources pour creer une boite de dialog (sous VC++ 6).mais j'obtiens, lors de la compilation
Priblème avec SetGlgItemTxt [ par thebigbang ]
bonjour à vous tous ...J'ai un problème avec cette fonction : SetGlgItemTxtJ'ai une fenêtre Win32 avec une edit donc je voudrais modifier la valeur.J'
Besoin d'aide pour créer des onglets [ par JazzBerri ]
g insérer la source suivante a mon programme et lorsque je lance l'application ma boite de dialogue apparait mais mes onglets ne sont toujours pa crée
[C++]Problème de pointeur ou de liste chainee [ par Arkko ]
Bonjour... J'essaye de convertir une liste chainée du site en une liste chainée demandant comme parametre un new par exemple ajouter(new Test);Cela f
SetDlgItemText pb! [ par toki127 ]
Bonjour!bien qu il y ait deja qques posts sur cet API, impossible d afficher ce que je veu ds mon edit...dans une boucle for (i=1;ilorsqu un calcul es
Erreur incompréhensible et insoluble pour moi.... [ par jb60 ]
Voilà, je vais inscrire le source que j'ai tapé (une partie du source plutôt). J'ai l'impression que tout est correct, mais le compilo me fait une err
tri tableau en ligne [ par TWITTI ]
bonjour , je suis etudiant en mécanique et la programmtion c est embetant pour moi.J ai un probleme sur mon programme main().Je n arrive pas a faire
transformer un int en HWND [ par hansmeier ]
Bonsoir, je suis un debutant en C/C++ et j'aimerais savoir comment transformer un int en HWND Merci pour vos futures réponses !
DLL et SendMessage() [ par LordBob ]
Bonsoir a tous,voila je continue le développement d'un petit projet. Je voudrais rajouter la possibilité que lorsque on appuie sur une touche a n'impo
probleme de slider [ par shadow1779 ]
Bonjour,pour mon mp3 je me suis fais un slider pour fais l'avancement de la position, j'ai donc dans mon WM_INITDIALOG ceci://initialisation de la pos
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|