WinAPI - Nachrichten Anzeigen

Webdesigner's
Verfügbare Informationen zu "WinAPI - Nachrichten Anzeigen"

  • 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 - Nachrichten Anzeigen
  • Letzte Antwort: vor 16 Jahren, 8 Monaten, 30 Tagen, 11 Stunden, 11 Minuten
  • Getaggt durch: Nachrichten
  • Alle Beiträge und Antworten zu "WinAPI - Nachrichten Anzeigen"

    Re: WinAPI - Nachrichten Anzeigen

    Snowball - 24.07.2007, 10:33

    WinAPI - Nachrichten Anzeigen
    In diesem Tutorial will ich euch zeigen, wie man das was man auf der Tastatur eingiebt, auch anzeigen lassen kann. Es ist ein klein wenig komplizierteres Script, obwohl es doch so einfach ist, aber hierbei kann man ja nur da falsch achen, was man in den anderen Tuts auch falsch machen kann :P

    ich selber habe diesen Quellcode nur mit dem Compiler "Microsoft Visual C++ 2005 Express Edition" getestet, sollte dieses programm also nicht funktionieren, kann es daran liegen das ihr den falschen Compiler benutzt, aber wenn WinAPI installiert ist sollte eigentlich alles gehen!

    Anber kommen wir nun zum Quellcode, er ist wie man sieht für WinAPI geschrieben, also müsst ihr eine Windows Anweisung erstellen!
    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;
       
       const char szAppName[] = "Texte einlesen";
       
       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 RECT     rect;
       static char     cBuffer[100];
       static int      iActLen;
       
       switch (message)
       {
       case WM_SIZE:
          {

                     rect.left   = 20;
             rect.right  = LOWORD(lParam) - 20;
             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_PAINT:
          {
             PAINTSTRUCT  ps;
             HDC          hDC;
             
             hDC = BeginPaint(hWnd, &ps);
             {

              DrawText(hDC, cBuffer, iActLen, &rect,
                              DT_SINGLELINE | DT_VCENTER);
             }
             EndPaint(hWnd, &ps);
             return 0;
          }

          case WM_KEYDOWN:
          {
             if (wParam == VK_ESCAPE)
             {

                 SendMessage(hWnd, WM_CLOSE, 0, 0);
             }
             return 0;
          }
       case WM_DESTROY:
          {
             PostQuitMessage(0);
             return 0;
          }
       }
       return DefWindowProc(hWnd, message, wParam, lParam);
    }

    Wenn ihr den debug nun startet, könnt ihr die tasteneingaben auf der tastaur auf dem bildschirm anzigen lassen. falls dieses programm bei euch nicht funktioniert, kann es sein das ihr WinAPI noch nicht installiert habt, oder ihr habt in den projekt eigenschaften den zeichensatz noch nicht auf "nicht festgelegt" umgestellt! fragen könnt ihr natürlich wie üblich im WinAPI bereich stellen!



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



    Weitere Beiträge aus dem Forum Webdesigner's

    Webdesigner's Team & Stormcommunity - gepostet von Snowball am Freitag 20.07.2007
    WinAPI - Mouse Bewegung - gepostet von Snowball am Dienstag 24.07.2007



    Ähnliche Beiträge wie "WinAPI - Nachrichten Anzeigen"

    Asahi TV- aktuelle Nachrichten - Bunny (Mittwoch 11.04.2007)
    GUTE NACHRICHTEN - Ilya Kovalchuk (Samstag 10.03.2007)
    buffzeit anzeigen lassen - Rloolyjr (Montag 04.06.2007)
    Königsklasse: Hier findet jeder die besten Anzeigen ! - Anonymous (Montag 14.03.2005)
    Zwecks privater Nachrichten (PN) - Mersalla (Donnerstag 29.06.2006)
    Persönlich Nachrichten - Mew (Samstag 22.07.2006)
    Nachrichten - lind400 (Sonntag 23.04.2006)
    Private Nachrichten - matzevolt (Dienstag 13.04.2004)
    private nachrichten - kluthi (Sonntag 20.06.2004)
    Altersanzeige bei Nachrichten [W1] - kaot (Montag 01.10.2007)