WinAPI - Vollbild modus

Webdesigner's
Verfügbare Informationen zu "WinAPI - Vollbild modus"

  • 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 - Vollbild modus
  • Letzte Antwort: vor 16 Jahren, 9 Monaten, 5 Tagen, 10 Stunden, 21 Minuten
  • Alle Beiträge und Antworten zu "WinAPI - Vollbild modus"

    Re: WinAPI - Vollbild modus

    Snowball - 24.07.2007, 15:06

    WinAPI - Vollbild modus
    Da das Vollbild thema schon lange herum kursiert, und man es mit DirektX wunder bar umsetzen kann, aber leider nicht immer sehr einfach ist, habe ich mir gedacht, ein kleines programm zu schreiben, das euer fenster im Vollbild anzeigen läßt.

    Es wird als popup angezeigt, ohne rand, ohne Windows start-leiste und ohne schließen fenster, und natürlich auch im vollbild!

    hier der Quellcode:

    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)
    {
       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;
    }

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

          static RECT   rect;
       static bool   ArrowKeys[4];
       
       switch (message)
       {

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

     case WM_KEYDOWN:
          {

             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;
          }

          case WM_PAINT:
          {
             PAINTSTRUCT  ps;
             HDC          hDC;
           int a;
           int i;

           SIZE         size;

           char szKeyStatus[40];
             int  iKeyLength;
             
             hDC = BeginPaint(hWnd, &ps);

           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);
                
             
           
           }

             EndPaint(hWnd, &ps);
             
             return 0;
          }
       case WM_DESTROY:
          {
             PostQuitMessage(0);
             return 0;
          }
       }
       return DefWindowProc(hWnd, message, wParam, lParam);
    }

    Wenn ihr dieses Script nun startet, seht ihr ein bild im Vollbild modus., um das ein wenig aktiver zu machen, haben wir einfach mal eine tastatur abfrage eingebaut. Wenn ihr nun die pfeiltasten drückt, seht ihr auf dem bildschirm, ob dies C++ und WinAPI es rkennen können.

    Fragen dürfen wie immer natürlich im WinAPI bereich gestellt werden!



    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 - Vollbild modus"

    u-modus (sephiroth/Frosty) - XxSephirothxX (Montag 26.03.2007)
    "Abstiegs-" Modus - raabbit (Samstag 23.12.2006)
    alle in den u modus - BLACK-GURDIAN (Freitag 23.02.2007)
    3D modus - dragon22e (Sonntag 28.01.2007)
    Fenster Modus funztz net -.- - .:Rox:. (Dienstag 20.03.2007)
    MODUS STEHT - xROCKYx (Samstag 25.02.2006)
    Im Urlaub(-modus) - Xrdas (Sonntag 16.07.2006)
    Modus und Regeln - mmolms (Donnerstag 01.02.2007)
    urlaubs modus - Cold Killer (Sonntag 20.05.2007)
    Handicap Modus - mod2005 (Samstag 03.09.2005)