JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=6d698fdcd7f48a63f49626b6f95fa047Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Anfängerfrage

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
lisandi6
Mini JLI'ler


Alter: 62
Anmeldedatum: 16.03.2009
Beiträge: 8
Wohnort: In den Bergen
Medaillen: Keine

BeitragVerfasst am: 29.02.2012, 23:58    Titel: Anfängerfrage Antworten mit Zitat

Hallo Programierer Laughing

Nachdem ich ja mein erstes normales Fenster hatte
hab ich natürlich versucht das ganze zu begreifen
und versucht möglichst viele Funktionen einzubauen.
Jetzt habe ich einen Fenstercode der etliche Funktionen hat
nur bekomme ich den Text nicht ins Fenster.
Jetzt meine Bitte an euch mir weiterzuhelfen.
Ich komme auch nach Stunden und etlichen Versuchen
nicht darauf wo der Fehler liegt.
Fehlermeldung liegt keine vor.
--------------------------------------------------------------------------------
CPP:
#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <tchar.h>
#include <cstdio>
 


static TCHAR szWindowClass[] = _T("win32app");
static TCHAR szTitle[] = _T("003Tetris");

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

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow)


{
    WNDCLASSEX wcex;

   wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style          = CS_HREDRAW | CS_VREDRAW |CS_OWNDC;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wcex.lpszMenuName   = NULL;
    wcex.lpszClassName  = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));

    if (!RegisterClassEx(&wcex))

    hInst = hInstance;

    HWND hWnd = CreateWindow(
        szWindowClass,
        szTitle,
        WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, CW_USEDEFAULT,
        400,400,
        NULL,
        NULL,
        hInstance,
        NULL);

    if (!hWnd)
    {
        MessageBox(NULL,
            _T("Call to CreateWindow failed!"),
            _T("Win32 Guided Tour"),
            NULL);

        return 0;
     }

    ShowWindow(hWnd,
        nCmdShow);
    UpdateWindow(hWnd);

   
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return (int) msg.wParam;
}


LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HPEN rot = CreatePen(PS_SOLID,2,RGB(255,0,0));
   HPEN blau = CreatePen(PS_SOLID,2,RGB(28,134,238));
    HPEN green = CreatePen (PS_SOLID,2,RGB(0,255,0));
    int x=0,*px;
    px = &x;
    PAINTSTRUCT PAINTSTRUCT;
    HDC hdc;
 


    switch (message)
    { 


        case WM_KEYDOWN:
           {
                  switch (wParam)
              {
                  case VK_ESCAPE:
                   {
                   PostQuitMessage (0);
                    return (0);
                 }
              }
            }
        case WM_LBUTTONDOWN:


           {
                PostQuitMessage (0);
            return (0);
           }
         
            
             
        case WM_RBUTTONDOWN:
                

           {
                *px+=10;
                 return 0;
                 break;
           }

         
                     
        case WM_PAINT:


           {
                     PAINTSTRUCT ;PAINTSTRUCT;
                      HDC hdc;
                      LOGFONT     lf = {0};
                      HFONT       hfText;
                      GetObject(GetStockObject(DEFAULT_GUI_FONT),   sizeof(LOGFONT), &lf);
                      lf.lfHeight =18;
                      lf.lfWeight = FW_BOLD;
                      hfText = CreateFontIndirect(&lf);
                    hdc = BeginPaint(hWnd,&PAINTSTRUCT);
                      SelectObject(PAINTSTRUCT.hdc, hfText);
                      SetBkMode(PAINTSTRUCT.hdc, RGB(255,255,255)); // Hintergrundmodus
                      SetTextColor(PAINTSTRUCT.hdc, RGB(0,0,255)); // Farbe
                      TextOut,("Hello World");
                      DeleteObject(SelectObject(PAINTSTRUCT.hdc, GetStockObject(SYSTEM_FONT)));
                 SelectObject(hdc,green);
                      MoveToEx(hdc,0,0,NULL);
                      SelectObject(hdc,green);
                      Rectangle(hdc,200,150,100,100);
                      SelectObject(hdc,blau);
                 LineTo(hdc,0,0);
                      SelectObject(hdc,blau);
                      Ellipse(hdc,0,0,0,0);                 
                     

                      EndPaint(hWnd,&PAINTSTRUCT);
                 return 0;
                 break;
              }
                   
           case WM_DESTROY:
                      PostQuitMessage(0);
                    return 0;
                      break;
    }

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

----------------------------------------------------------------------------

Besten Dank im voraus
lisandi

[Edit by FH]
Hab mal CPP-Tags um den Code hinzugefügt
[/Edit]
_________________
Besser die Zeit aktiv nutzen
anstatt aktiv die Zeit zu stutzen


Zuletzt bearbeitet von lisandi6 am 02.03.2012, 12:00, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 02.03.2012, 09:25    Titel: Antworten mit Zitat

1: Was macht das Komma da? TextOut,("Hello World");
2: Versuch mal genauer zu beschreiben, was du eigentlich tun willst, welche Zeilen das machen wollen, und was nicht klappt.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
lisandi6
Mini JLI'ler


Alter: 62
Anmeldedatum: 16.03.2009
Beiträge: 8
Wohnort: In den Bergen
Medaillen: Keine

BeitragVerfasst am: 02.03.2012, 12:09    Titel: Antworten mit Zitat

1)
Eigentlich möchte ich ein Fenster
bei dem ich über die Funktion WM_PAINT einen Text
in mein Fenster einfügen kann.
Textgrösse verändern usw.

Bei Rectangle funktioniert es ja
2)
Komischerweise wenn ich das Komma weglasse bekomme ich
beim Projektmappen erstellen folgende Fehlermeldung

error C2660: 'TextOutW': Funktion akzeptiert keine 1 Argumente

Mit Komma wird ohne Fehler erstellt
_________________
Besser die Zeit aktiv nutzen
anstatt aktiv die Zeit zu stutzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 02.03.2012, 12:50    Titel: Antworten mit Zitat

Ja, mit Komma ist aber definitiv falsch. Keine Ahnung, was da mit den Makros im Hintergrund genau passiert und warum es überhaupt kompiliert, aber es ist falsch.

Guck dir nochmal an, wie man TextOut verwendet. Dazu sollte auch im Buch etwas stehen.

Tipp: http://msdn.microsoft.com/en-us/library/dd145133%28v=vs.85%29.aspx
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
lisandi6
Mini JLI'ler


Alter: 62
Anmeldedatum: 16.03.2009
Beiträge: 8
Wohnort: In den Bergen
Medaillen: Keine

BeitragVerfasst am: 04.03.2012, 15:52    Titel: Windows Fenster mit WM_PAINT Funktion Antworten mit Zitat

So geschafft.
Ich kann jetzt Text und Objekte ins Fenster einfügen.
_____________________________________________[/img]
CPP:
#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <tchar.h>


static TCHAR szWindowClass[] = _T("Hallo Andi");

static TCHAR szTitle[] = _T("Win32 Guided Tour Application");

HINSTANCE hInst;

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

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow)
{
    WNDCLASSEX wcex;

    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName   = NULL;
    wcex.lpszClassName  = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));

    if (!RegisterClassEx(&wcex))
    {
        MessageBox(NULL,
            _T("Call to RegisterClassEx failed!"),
            _T("Win32 Guided Tour"),
            NULL);

        return 1;
    }

    hInst = hInstance;
    HWND hWnd = CreateWindow(
        szWindowClass,
        szTitle,
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT,
        300, 300,
        NULL,
        NULL,
        hInstance,
        NULL
    );

    if (!hWnd)
    {
        MessageBox(NULL,
            _T("Call to CreateWindow failed!"),
            _T("Win32 Guided Tour"),
            NULL);

        return 1;
    }

   
    ShowWindow(hWnd,
        nCmdShow);
    UpdateWindow(hWnd);

 
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return (int) msg.wParam;
}


LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HPEN rot = CreatePen(PS_SOLID,2,RGB(255,0,0));
   HPEN blau = CreatePen(PS_SOLID,2,RGB(28,134,238));
    HPEN green = CreatePen (PS_SOLID,2,RGB(0,255,0));
    PAINTSTRUCT ps;
    HDC hdc;
    TCHAR greeting[] = _T("Hallo Lisandi 6 !!");

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

       SelectObject(hdc,green);
         MoveToEx(hdc,0,0,NULL);
         SelectObject(hdc,green);
         Rectangle(hdc,100,200,200,100);
         SelectObject(hdc,blau);
       LineTo(hdc,0,0);
         SelectObject(hdc,blau);
         Ellipse(hdc,0,0,0,0);

   
        TextOut(hdc,
            5, 5,
            greeting, _tcslen(greeting));
       
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
        break;
    }

    return 0;
}

------------------------------------------------------------------------------

Langsam beginn ich das ganze zu durchschauen Idea
MfG Lisandi6
_________________
Besser die Zeit aktiv nutzen
anstatt aktiv die Zeit zu stutzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum