WinAPI - Sachen kombinieren

Webdesigner's
Verfügbare Informationen zu "WinAPI - Sachen kombinieren"

  • 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 - Sachen kombinieren
  • Letzte Antwort: vor 16 Jahren, 8 Monaten, 2 Tagen, 14 Stunden, 18 Minuten
  • Alle Beiträge und Antworten zu "WinAPI - Sachen kombinieren"

    Re: WinAPI - Sachen kombinieren

    Snowball - 26.07.2007, 00:29

    WinAPI - Sachen kombinieren
    in diesem Tutorial möchte ich euch zeigen wie man ein paar Codes aus diesem Forum miteinander Kombinieren kann, da dies manchmal garnicht so einfahc für anfänger ist!

    Hier der Code, und schaut ihn euch genau an und vergleicht ihn mit anderen Tuts!
    Code:
    #include <windows.h>
    #include "stdafx.h"


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

       

       static RECT   rect;
       static bool   ArrowKeys[4];
       static char     cBuffer[100];
       static int      iActLen;
       
       switch (message)
       {

       case WM_SIZE:
          {
             rect.right  = LOWORD(lParam);
             rect.bottom = HIWORD(lParam);
             return 0;
          }

         case WM_CHAR:
          {
             switch (wParam)
             {

              case '\r':
                iActLen = 0;
                InvalidateRect(hWnd, NULL, TRUE);
                break;

             case '\b':
                if (iActLen <= 0)
                   break;
               
                iActLen--;
                InvalidateRect(hWnd, NULL, TRUE);
                break;

                      case '\t':
             case '\n':
             case  27 :
                break;

     default:
                if (iActLen < sizeof(cBuffer))
                {
                   cBuffer[iActLen++] = wParam;
                   InvalidateRect(hWnd, NULL, FALSE);
                }
                break;
             }
             return 0;
          }

     case WM_KEYDOWN:
          {

    if (wParam == VK_ESCAPE)
             {

                 SendMessage(hWnd, WM_CLOSE, 0, 0);
             }

             switch (wParam)
             {
             case VK_LEFT:

               ArrowKeys[0] = true;
                break;
               
             case VK_UP:
                ArrowKeys[1] = true;
                break;

             case VK_RIGHT:
                ArrowKeys[2] = true;
                break;

             case VK_DOWN:
                ArrowKeys[3] = true;
                break;

             default:
                return 0;
             }
             InvalidateRect(hWnd, NULL, FALSE);
             return 0;
          }

          case WM_KEYUP:
          {
             switch (wParam)
             {
             case VK_LEFT:
                ArrowKeys[0] = false;
                break;
               
             case VK_UP:
                ArrowKeys[1] = false;
                break;
               
             case VK_RIGHT:
                ArrowKeys[2] = false;
                break;
               
             case VK_DOWN:
                ArrowKeys[3] = false;
                break;
               
             default:
                return 0;
             }
             InvalidateRect(hWnd, NULL, FALSE);
             return 0;
         }
       }

               
           
             int i;
           int b=0;
          

    HANDLE hbitmap = LoadImage(NULL,TEXT(""),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    HDC hdc = GetWindowDC(hWnd);
    HDC hdc_ram = CreateCompatibleDC(NULL);

    PAINTSTRUCT ps;

     SIZE         size;

           char szKeyStatus[40];
             int  iKeyLength;

    switch( message ) 
             { 
               case WM_PAINT:     
                 hdc = BeginPaint( hWnd, &ps );

             
             DrawText(hdc, cBuffer, iActLen, &rect,
                              DT_SINGLELINE | DT_VCENTER);
             

           for (int i = 0; i < 4; i++)
             {
                iKeyLength = wsprintf(szKeyStatus, "Pfeil-Taste %i: %i",
                                      i, ArrowKeys[i]);
             

              GetTextExtentPoint32(hdc, szKeyStatus, iKeyLength, &size);

                TextOut(hdc, rect.right / 2 - size.cx / 2, rect.bottom / 2 -
                        2 * size.cy + i * size.cy, szKeyStatus, iKeyLength);
             
             
             

          }
                 

     hbitmap = LoadImage (NULL,TEXT("C:\\bild2.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
      hdc_ram = CreateCompatibleDC(NULL);
      SelectObject (hdc_ram, hbitmap);
      BitBlt       (hdc,50,50,100,100,hdc_ram,0,0,SRCCOPY);
      DeleteDC     (hdc_ram);
      DeleteObject (hbitmap);

                   
                 EndPaint( hWnd, &ps );

             

               return 0;

               case WM_DESTROY:     
                 PostQuitMessage(0);     
               return 0;               

               return 0; 
             }
             return DefWindowProc (hWnd, message, wParam, lParam);
    }

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                       PSTR szCmdLine, int iCmdShow)
    {
       MSG          msg;
       HWND         hWnd;
       WNDCLASS     wc;
       
       char szAppName[] = "Tastaturabfragen";
       
       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,
                TEXT("FullscreenWindow"),
                WS_POPUP,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                NULL,
                NULL,
                hInstance,
                NULL);

        // window darstellen und maximieren
        ShowWindow(hWnd, SW_MAXIMIZE);

       while (GetMessage(&msg, NULL, 0, 0))
       {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
       }
       return msg.wParam;
    }



    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 - Sachen kombinieren"

    Super Youtube Sachen - Rage (Sonntag 29.04.2007)
    Gezeichnete Sachen - gothro (Montag 17.07.2006)
    Neue Sachen - The Viking (Montag 20.08.2007)
    Haarige Sachen... - bianca (Samstag 25.03.2006)
    Regeln bzw. Sachen die machen ( verbessern) könnte - cello (Freitag 06.10.2006)
    Natur Resi Sachen/ Mats - metzga (Dienstag 28.11.2006)
    sachen her-überfall - plauer (Mittwoch 22.11.2006)
    Grundlegende Sachen für Kriege/Kämpfe - Promiscuous (Dienstag 12.09.2006)
    Gesamtwertung 2012/2013: - jogi264 (Mittwoch 05.09.2012)
    Lustige Handy sachen - djbema (Samstag 29.01.2005)