WinAPI - Mouse einbinden

Webdesigner's
Verfügbare Informationen zu "WinAPI - Mouse einbinden"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Snowball
  • Forum: Webdesigner's
  • Forenbeschreibung: Das Hilfe Forum für alle Webdesigner
  • aus dem Unterforum: Tutorial C++
  • Antworten: 1
  • Forum gestartet am: Freitag 20.07.2007
  • Sprache: deutsch
  • Link zum Originaltopic: WinAPI - Mouse einbinden
  • Letzte Antwort: vor 16 Jahren, 9 Monaten, 3 Tagen, 8 Stunden,
  • Alle Beiträge und Antworten zu "WinAPI - Mouse einbinden"

    Re: WinAPI - Mouse einbinden

    Snowball - 24.07.2007, 09:56

    WinAPI - Mouse einbinden
    In diesem kleinen Tutorial zeige ich euch, wie man die Mouse eibinden kann. Da wir auch sehen wollen was wir mit der maus machen können, werden wir ein kleines zeichen Programm programmieren. Wie der oben stehende begriff "WinAPI" im Titel schon sagt, ist dies eine WinAPI Anwendung, also eine Windows anwendung, keine Konsolen Anwendung! ich selber habe dieses Script nur mit dem Compiler "Microsoft Visual C++ Express Edition" getestet, bei anderen Compilern sollte dies aber auch gehen!

    Nun kommen wir zum Quellcode, ich werde hierzu erstmal keine erklärungen abgeben, falls ihr fragen habt könnt ihr diese im API Forum stellen!


    Code: #include <windows.h>
    #include "stdafx.h"

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

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                       PSTR szCmdLine, int iCmdShow)
    {
       HWND         hWnd;
       MSG          msg;
       WNDCLASS     wc;
       
       char         szAppName[] = "Die Mouse";
       
       wc.cbClsExtra          = 0;
       wc.cbWndExtra          = 0;
       wc.hbrBackground       = (HBRUSH)GetStockObject(WHITE_BRUSH);
       wc.hCursor             = LoadCursor(NULL, IDC_ARROW);
       wc.hIcon               = LoadIcon(NULL, IDI_APPLICATION);
       wc.hInstance           = hInstance;
       wc.lpfnWndProc         = WndProc;
       wc.lpszClassName       = szAppName;
       wc.lpszMenuName        = NULL;
       wc.style               = CS_HREDRAW | CS_VREDRAW;
       
       RegisterClass(&wc);
       
       hWnd = CreateWindow(  szAppName,
                             szAppName,
                             WS_OVERLAPPEDWINDOW,
                             CW_USEDEFAULT,
                             CW_USEDEFAULT,
                             CW_USEDEFAULT,
                             CW_USEDEFAULT,
                             NULL,
                             NULL,
                             hInstance,
                             NULL);
                             
       ShowWindow(hWnd, iCmdShow);
       UpdateWindow(hWnd);
       
       while (GetMessage(&msg, NULL, 0, 0))
       {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
       }
       
       return msg.wParam;
    }

    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {

       static POINT    point;
       
       switch (message)
       {
       case WM_CREATE:
          {
             point.x  = -1;
             point.y  = -1;
             return 0;
          }
       case WM_DESTROY:
          {
             PostQuitMessage(0);
             return 0;
          }

         case WM_RBUTTONDOWN:
          {
             InvalidateRect(hWnd, NULL, TRUE);
             return 0;
          }

         case WM_LBUTTONDOWN:
          {

            HDC  hDC = GetDC(hWnd);
                SetPixel(hDC, LOWORD(lParam), HIWORD(lParam), RGB(0, 0, 255));
             ReleaseDC(hWnd, hDC);

            point.x  = LOWORD(lParam);
             point.y  = HIWORD(lParam);
             return 0;
          }

         case WM_LBUTTONUP:
          {

            if (point.x != -1)
             {
                HDC   hDC = GetDC(hWnd);
                   MoveToEx(hDC, point.x, point.y, NULL);
                   LineTo(hDC, LOWORD(lParam), HIWORD(lParam));
                ReleaseDC(hWnd, hDC);
               
                point.x   = -1;
                point.y   = -1;
             }
             return 0;
          }
       }
       
       return DefWindowProc(hWnd, message, wParam, lParam);
    }


    Wenn ihr das Debung nun startet, könnt ihr wenn ihr die linke Moustaste drückt einen Punkt sehen, der sich an der stelle befindet wo ihr geklickt habt. Wenn ihr diese taste gedrückt hält und an einem anderen Punk los laßt, dann zieht ihr eine linie von dem punkt an wo ihr geklickt habt und wo ihr los gelassen habt.

    Falls dies nicht funktioniert, könnte es daran liegen, das ihr in den projekt eigenschaften den zeichensatz noch nicht auf "nicht festgelegt" umgestellt habt oder ihr habt API noch nicht installiert!



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Webdesigner's



    Ähnliche Beiträge wie "WinAPI - Mouse einbinden"

    Einbinden von Bildern in Beiträgen - himself (Samstag 01.07.2006)
    Gamertag in Site einbinden... - NIKITA 2005 (Sonntag 30.10.2005)
    Mouse Rage Syndrom - dejost (Freitag 22.12.2006)
    House Mouse thema Zeitung - nadine (Samstag 25.08.2007)
    Mouse dance - Video - Moderator (Sonntag 14.01.2007)
    modest mouse - cloony (Donnerstag 27.07.2006)
    Micky Mouse für Bekloppte - Shlomo (Dienstag 15.05.2007)
    Mouse - Mouse (Donnerstag 01.11.2007)
    fotos in das forum einbinden ? - Christian (Freitag 18.02.2005)
    Bilder einbinden - filias (Dienstag 25.09.2007)