Coordonnees de la souris

Soyez le premier à donner votre avis sur cette source.

Vue 3 972 fois - Téléchargée 225 fois

Description

Programme qui montre les coordonnes de la souris par rapport a la taille de la fenetre.

Source / Exemple :


#include <windows.h>
#include <stdarg.h>
#include <stdio.h>

// PROTOTYPE
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

// WIN MAIN
int WINAPI WinMain (  HINSTANCE     hInstance,
                      HINSTANCE     hPrevInstance,
                      PSTR          szCmdLine,
                      int           iCmdShow)
{
static char szAppName[] = "Programme d'essai";
HWND        hwnd;
MSG         msg;
WNDCLASSEX  wndclass;

wndclass.cbSize        = sizeof (wndclass);
wndclass.style         = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc   = WndProc;
wndclass.cbClsExtra    = 0;
wndclass.cbWndExtra    = 0;
wndclass.hInstance     = hInstance;
wndclass.hIcon         = LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor       = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject (WHITE_BRUSH);
wndclass.lpszMenuName  = NULL;
wndclass.lpszClassName = szAppName;
wndclass.hIconSm       = LoadIcon(NULL,IDI_APPLICATION);
// on enregistre la classe
RegisterClassEx (&wndclass) ;
// on cree la fenetre
hwnd = CreateWindow (szAppName,
                    "",
                    WS_OVERLAPPEDWINDOW,
                    CW_USEDEFAULT,
                    CW_USEDEFAULT,
                    CW_USEDEFAULT,
                    CW_USEDEFAULT,
                    NULL,
                    NULL,
                    hInstance,
                    NULL) ;
// on dessine et met a jour la fenetre
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
// bouble des messages
while (GetMessage (&msg, NULL, 0, 0))
    {
    TranslateMessage (&msg) ;
    DispatchMessage (&msg) ;
    }
return msg.wParam ;
}
// trace une ligne de (x,y) a (xx,yy)
void line(HDC hdc,int x,int y,int xx,int yy)
  {
  MoveToEx (hdc, x , y ,NULL) ;
  LineTo   (hdc, xx , yy ) ;
  return;
  } 

// WND PROC
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {
     static int       cxClient,cyClient,cxMouse,cyMouse;
     switch (iMsg)
          {
          // creation
          case WM_CREATE:
            {
            cxMouse = 0;
            cyMouse = 0;
            return 0;
            }
          // on redimensionne la fenetre
          case WM_SIZE:
            {
            cxClient = LOWORD (lParam) ;
            cyClient = HIWORD (lParam) ;
            return 0 ;
            }
          // on bouge la souris
          case WM_MOUSEMOVE:
            {
            cxMouse = LOWORD (lParam) ;
            cyMouse = HIWORD (lParam) ;
            InvalidateRect(hwnd,NULL,TRUE);
            return 0;
            }
          // on redessine
          case WM_PAINT:
            {
            HDC           hdc;
            PAINTSTRUCT   ps;

            char          buf[256],buf2[256];
            int           len;

	          hdc = BeginPaint (hwnd, &ps);
            // on trace les axes
            line(hdc,cxMouse,0,cxMouse,cyClient);
            line(hdc,0,cyMouse,cxClient,cyMouse);
            // on formate les textes

            len = sprintf(buf,"(  %d / %d  ,  %d / %d  )",cxMouse,cxClient,cyMouse,cyClient);
            // pour le titre de la fentre
            strcpy(buf2,"Coordonnees de la souris : ");
            strcat(buf2,buf);
            
            // on dessine !
            TextOut(hdc,cxMouse+1,cyMouse+1,buf,len);
            SetWindowText(hwnd,buf2);

	          EndPaint (hwnd, &ps) ;
            return 0 ;
            }
          // on quitte le programme
          case WM_DESTROY:
               PostQuitMessage (0) ;
               return 0 ;
          }

     return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
     }

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Sarah232
Messages postés
6
Date d'inscription
lundi 13 mars 2006
Statut
Membre
Dernière intervention
22 mars 2009

Arf, j'obtiens les erreurs suivantes à la compilation :
[Linker error] undefined reference to `GetStockObject@4'
[Linker error] undefined reference to `MoveToEx@16'
[Linker error] undefined reference to `LineTo@12'
[Linker error] undefined reference to `TextOutA@20'

Vous avez une idée ? merci
kiki67100
Messages postés
318
Date d'inscription
samedi 6 mai 2006
Statut
Membre
Dernière intervention
10 août 2013
1
Merci les codes bien pour un debutant comme moi merci

Kevin

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.