Win API Tut...frage



  • hiho 🙂 hab ne frage zieh mir grad n WINAPI tut rein http://www.win-api.de/winapi/tut03.html <- das da..so und bei denn übungsaufgaben...wie mach ich da en 2ten text hine ? da wird ja inem fenster nen text ausgegeben,´nur wie der 2te ?
    hier ma denn code ::

    /*
    * Tutorial Code zu: Tutorial 3 "Ausgabe im Anwendungsbereich"
    *
    * http://www.Loggy.de.st/
    *
    * Henno Buschmann (Loggy.mail@gmx.de)
    */

    #define STRICT

    #include <windows.h>

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

    const char szAppName[] = "Ausgabe im Anwendungsbereich";

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
    {
    MSG msg;
    HWND hWnd;
    WNDCLASS wc;

    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
    wc.lpszClassName = szAppName;
    wc.lpszMenuName = NULL;

    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)
    {
    switch (message)
    {
    case WM_PAINT:
    {
    PAINTSTRUCT ps; /* Soll Daten über den Zeichenbereich speichern /
    HDC hDC; /
    Handle auf den Zeichenbereich */

    const char szText[] = "Hallo, dies ist der Text.";

    hDC = BeginPaint(hWnd, &ps); /* Meldet Zeichenoperation an */
    { /* Zeichnet den Text /
    TextOut(hDC, 270, 230, szText, sizeof(szText) - 1);
    }
    EndPaint(hWnd, &ps); /
    Beendet Zeichenoperation */
    return 0;
    }
    case WM_DESTROY:
    {
    PostQuitMessage(0);
    return 0;
    }
    }

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

    danke tschau



  • Nen 2. Text im Fenster? Einfach hinter dem TextOut zwischen BeginPaint und EndPaint noch ein TextOut setzen.

    M.T.



  • Ja, so:

    #define STRICT
    
    #include <windows.h>
    
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    
    const char szAppName[] = "Ausgabe im Anwendungsbereich";
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
    {
        MSG msg;
        HWND hWnd;
        WNDCLASS wc;
    
        wc.style = CS_HREDRAW | CS_VREDRAW;
        wc.lpfnWndProc = WndProc;
        wc.cbClsExtra = 0;
        wc.cbWndExtra = 0;
        wc.hInstance = hInstance;
        wc.hCursor = LoadCursor(NULL, IDC_ARROW);
        wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
        wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
        wc.lpszClassName = szAppName;
        wc.lpszMenuName = NULL;
    
        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)
    {
        switch (message)
        {
            case WM_PAINT:
            {
                PAINTSTRUCT ps;
                HDC hDC;
    
                const char szText[] = "Hallo, dies ist der Text.";
    
                hDC = BeginPaint(hWnd, &ps);
                {
                    TextOut(hDC, 270, 230, szText, sizeof(szText) - 1);
                    TextOut(hDC, 270, 250, szText, sizeof(szText) - 1); //<- Gleichen Text 20 Pixel darunter nochmal zeichnen
                }
                EndPaint(hWnd, &ps);
                return 0;
            }
            case WM_DESTROY:
            {
                PostQuitMessage(0);
                return 0;
            }
        }
    
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    

    ok?



  • und dann nur mal so als tip nebenbei: 😃 wie wärs wenn du dir einfach mal die lösung anguckst 😉 , oder ist dir das zu einfach ? 😕



  • vielleicht ist auch der Kurs was für Dich: http://mitglied.lycos.de/ehenkes/api1.htm



  • Original erstellt von <win3k>:
    vielleicht ist auch der Kurs was für Dich: [url=http://mitglied.lycos.de/ehenkes/api1.htm

    ]http://mitglied.lycos.de/ehenkes/api1.htm[/QB][/QUOTE][/url]

    nein tut er nicht -> http://www.tripod.lycos.de/error/404.phtml


Anmelden zum Antworten