modifier la position de la souris [BCB/delphi] - Programmation
Marsh Posté le 21-08-2002 à 09:10:03
Essaye: SendInput
C une fonction de l'API windows.
Marsh Posté le 21-08-2002 à 09:15:43
En BC 16 et 32 bits, j'avais écrit un module pour mettre le curseur de souris juste au centre d'un objet (souvent au milieu d'un bouton pour ne plus avoir qu'à cliquer dessus). Faudrait voir pour le transcrire en C++.
void PlaceCursSourisSurCentreObjet(HWND hDlgC, int Controle)
{ // Place le curseur de la souris au centre de l'objet Controle
RECT rcP;
// coordonnées Ecran de l'objet Controle
GetWindowRect(GetDlgItem(hDlgC, Controle), &rcP);
ShowCursor(FALSE); // cache pour pas le voir bouger
// déplace en face du milieu du bouton (coordonnées Ecran)
SetCursorPos((rcP.left + rcP.right) / 2, (rcP.top + rcP.bottom) / 2);
ShowCursor(TRUE); // le montre au bon endroit
}
// fin de module PlaceCursSourisSurCentreObjet
Si ça peut servir ...
Marsh Posté le 21-08-2002 à 09:27:41
arf, ca fait bouger la souris, mis en fait je sais aps commetn mettre les bonnes coordonnées, en relatif sur le form
en fait la ca doit me mettre le curseur au milieu d'un bouton
SetCursorPos(TBQuestion3_1->Top+TBQuestion3_1->Height/2,TBQuestion3_1->Left+TBQuestion3_1->Width/2);
masi ca marche mal , ca le met u peu n'importe ou en fonction de l'emplacement de mon dialogue sur l'écran
Marsh Posté le 21-08-2002 à 10:09:35
Faut se méfier des coordonnées Client (de la feuille qu'on a "designé" ) et de l'Ecran. Y a des fonctions qui ont besoin des unes ou des autres.
On passe de l'un à l'autre par ClientToScreen et ScreenToClient (on transforme qu'un POINT => deux appels si on veut x1,y1 ET x2,y2).
NB : quand on bouge logiciellement le curseur de souris, si on bouge aussi la souris, ça "fait bizarre"....
Marsh Posté le 21-08-2002 à 10:13:15
carbon_14 a écrit a écrit : NB : quand on bouge logiciellement le curseur de souris, si on bouge aussi la souris, ça "fait bizarre".... |
Bouger physiquement la souris? Elle a pas des petites pattes pour se déplacer tu sais?
Marsh Posté le 21-08-2002 à 10:37:24
comment déplace au niveau fenetre, client ?
en gros quand je bouge ma souris sur un bouton "non", ca me la déplace autamatiquement sur "oui" (c kool hein ? )
Marsh Posté le 21-08-2002 à 10:39:30
farib a écrit a écrit : comment déplace au niveau fenetre, client ? en gros quand je bouge ma souris sur un bouton "non", ca me la déplace autamatiquement sur "oui" (c kool hein ? ) |
tu prend les coordonée de ton bouton dans ta fenêtre et tu les passe en coordonnée écran et là tu bouge le curseur sur ces coordonnées
Marsh Posté le 21-08-2002 à 10:41:38
oui, masi la j'ai un peu de mal, je suis aps top avec l'api windows.... je fais comment ?
Marsh Posté le 21-08-2002 à 10:47:44
Avec BCB:
Code :
|
Marsh Posté le 21-08-2002 à 10:52:59
finalement j'ai réussi et j'ai écris, sans lire ce que tu as fait
Code :
|
on a des cerveaux semblables !
Marsh Posté le 21-08-2002 à 10:54:17
farib a écrit a écrit : finalement j'ai réussi et j'ai écris, sans lire ce que tu as fait
|
Ho hé ça va les insultes! Nan, j'déconne
Marsh Posté le 21-08-2002 à 10:59:51
letoII a écrit a écrit : Ho hé ça va les insultes! Nan, j'déconne |
c t plutot une flatterie
un honneur pour toi
Marsh Posté le 21-08-2002 à 11:09:35
farib a écrit a écrit : c t plutot une flatterie un honneur pour toi |
Marsh Posté le 21-08-2002 à 12:46:14
Si vous vous chamailez à comparer la taille de vos cerveaux, et leur Win_APIsation, sa souris va se sauver horrifiée (surtout si elle est sans fil !)
Marsh Posté le 21-08-2002 à 14:20:26
carbon_14 a écrit a écrit : Si vous vous chamailez à comparer la taille de vos cerveaux, et leur Win_APIsation, sa souris va se sauver horrifiée (surtout si elle est sans fil !) |
Marsh Posté le 21-08-2002 à 09:05:16
voila, je cherche " a faire bouger la souris toute seule", et j'ai essayé par
Mouse->CursorPos.x = 0;
Mouse->CursorPos.y = 0;
mais c marche pas
quelle voie dois-je empruner pour arriver a mes fins ?