Gamestudio Links
Zorro Links
Newest Posts
Blobsculptor tools and objects download here
by NeoDumont. 03/28/24 03:01
Issue with Multi-Core WFO Training
by aliswee. 03/24/24 20:20
Why Zorro supports up to 72 cores?
by Edgar_Herrera. 03/23/24 21:41
Zorro Trader GPT
by TipmyPip. 03/06/24 09:27
VSCode instead of SED
by 3run. 03/01/24 19:06
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
5 registered members (AndrewAMD, Nymphodora, Quad, TipmyPip, Imhotep), 852 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
sakolin, rajesh7827, juergen_wue, NITRO_FOREVER, jack0roses
19043 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Example how to use GDI Grafix with lite-c Legacy Mode #277742
07/10/09 12:54
07/10/09 12:54
Joined: Jul 2007
Posts: 424
EUROPE
maslone1 Offline OP
Senior Member
maslone1  Offline OP
Senior Member

Joined: Jul 2007
Posts: 424
EUROPE
Here an Example how to use GDI Grafix with lite-c Legacy Mode.
I tooked this example from an C++ book:

a "smile" with gdi
Code:
#include <litec.h>		//Lite-C legacy Mode
#include <stdio.h>		//Stanard C
#include <windows.h>		//Windows API
#include <d3d9.h>			//direct X 9





// Prototypen

// Anwendungsfenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance);

//Callback Funktion zur Nachrichtenbehandlung
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);


// Das Fensterhandle
HWND hWnd = 0;


// Windows main-Funktion
int WINAPI WinMain(HINSTANCE hInstance,      // Handle der Programminstanz
                   HINSTANCE hPrevInstance,  // Handle der letzten Instanz
                   LPSTR lpCmdLine,          // Kommandozeile
                   int nCmdShow)             // Art wie das Fenster angezeigt werden soll
{   
    // Fenster erzeugen und Handle speichern
    hWnd = CreateMainWindow(hInstance);

    // Wenn der Rückgabewert 0 ist, ist ein Fehler aufgetreten
    if(0 == hWnd)
    {
        MessageBox(0,"Fehler","Fehler",MB_OK);
        return 0;
    }

	// Struktur, in der Informationen zur Nachricht gespeichert werden
    MSG msg;
    
    // Diese Schleife läuft bis die Nachricht WM_QUIT empfangen wird
    while(GetMessage(&msg,NULL,0,0))
	{
        // Nachricht an die Callbackfunktion senden
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    // Rückgabewert an Windows
    return 0;
}


HWND CreateMainWindow(HINSTANCE hInstance)
{
    WNDCLASSEX wndClass;                                   // WNDCLASSEX Struktur
  
    // Struktur initialisieren
    wndClass.cbSize        = sizeof(WNDCLASSEX);           // Größe angeben (nie vergessen!)
    wndClass.style         = CS_DBLCLKS | CS_OWNDC |
                             CS_HREDRAW | CS_VREDRAW;      // Standard Stile
    wndClass.lpfnWndProc   = WindowFunc;                   // Die Callback Funktion angeben

    wndClass.cbClsExtra    = 0;                            // Zusätzliche Angaben, wird nicht benötigt
    wndClass.cbWndExtra    = 0;                            // Zusätzliche Angaben, wird nicht benötigt
    wndClass.hInstance     = hInstance;                    // Anwendungsinstanz

    wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);  // Weisser Pinsel
    wndClass.hCursor       = LoadCursor(NULL, IDC_ARROW);  // Normaler Cursor
    wndClass.lpszMenuName  = NULL;                         // Das Fenster hat kein Menü
    wndClass.lpszClassName = "WindowClass";                // Der Name der Klasse
    //wndClass.hIcon         = LoadIcon(NULL, IDI_WINLOGO);  // Windows Logo
    //wndClass.hIconSm       = LoadIcon(NULL, IDI_WINLOGO);  // Windows Logo

    RegisterClassEx(&wndClass);

    return CreateWindowEx(NULL,                   // Keine erweiterten Stile nutzen
                          "WindowClass",          // Klassenname
                          "Ein einfaches Fenster",// Fenstertitel
                          WS_OVERLAPPEDWINDOW |   // Fenster
                          WS_VISIBLE,             // Eigenschaften
                          100, 100, 400, 300,     // Anfangsposition und Größe
                          NULL,                   // Handle des Elternfensters
                          NULL,                   // Handle des Menüs
                          hInstance,              // Anwendungsinstanz
                          NULL);                  // wird nicht benötigt
}


// Diese Funktion wird von Windows aufgrufen, wenn eine Nachricht
// für Ihr Programm vorliegt
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    // testen, um welche Nachticht es sich handelt
    switch(msg)
    {
        // das Fenster soll geschlossen werden
        case WM_DESTROY:
                    PostQuitMessage(0);
                    return 0;
                break;
    
        // das Fenster soll neu gezeichnet werden
        case WM_PAINT:
                    PAINTSTRUCT ps;
                    HDC hDC;
                    
                    // Handle des Device Context anfordern
                    hDC = BeginPaint(hWnd,&ps);    

                    // drei neue Stift mit verschiedenen Farben und
                    // Strichstärken erzeugen
                    long PenRed   = CreatePen(PS_SOLID,3,RGB(255,0,0));
                    long PenGreen = CreatePen(PS_SOLID,2,RGB(0,255,0));
                    long PenBlue  = CreatePen(PS_SOLID,1,RGB(0,0,255));
              
              			//HPEN ????
              
                    // den ersten Stift wählen und zwei Ellipsen zeichnen
                    SelectObject(hDC,PenBlue);
                    Ellipse(hDC,60,5,340,250);
                    Ellipse(hDC,150,190,250,210);

                    // den zweiten Stift wählen und zwei Rechtecke zeichnen
                    SelectObject(hDC,PenGreen);
                    Rectangle(hDC,110,40,160,80);
                    Rectangle(hDC,240,40,290,80);
                    
                    // den dritten Stift wählen und drei Striche zeichnen                  
                    SelectObject(hDC,PenRed);
                    MoveToEx(hDC,200,120,NULL);
                    LineTo(hDC,180,150);
                    LineTo(hDC,220,150);
                    LineTo(hDC,200,120);
     
                    // die Stifte müssen wieder gelöscht werden
                    DeleteObject(PenRed);
                    DeleteObject(PenGreen);
                    DeleteObject(PenBlue);
                    
                    
                    SetPixel(ps.hdc, 20, 20, RGB(25,100,100));		//setze Pixel



                    // mitteilen, dass die Zeichenoperationen abgeschlossen sind
                    EndPaint(hWnd,&ps);
                    
                    return 0;
                break;
    }

    // Wenn wir uns nicht um die Nachricht gekümmert haben
    // wird sie an die Standardnachrichtenverarbeitung von Windows
    // geschickt
    return (DefWindowProc(hwnd, msg, wParam, lParam));
}




Draw only a pixel in the window:
Code:
#include <litec.h>		//Lite-C legacy Mode
#include <stdio.h>		//Stanard C
#include <windows.h>		//Windows API
#include <d3d9.h>			//direct X 9





// Prototypen

// Anwendungsfenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance);

//Callback Funktion zur Nachrichtenbehandlung
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);


// Das Fensterhandle
HWND hWnd = 0;


// Windows main-Funktion
int WINAPI WinMain(HINSTANCE hInstance,      // Handle der Programminstanz
                   HINSTANCE hPrevInstance,  // Handle der letzten Instanz
                   LPSTR lpCmdLine,          // Kommandozeile
                   int nCmdShow)             // Art wie das Fenster angezeigt werden soll
{   
    // Fenster erzeugen und Handle speichern
    hWnd = CreateMainWindow(hInstance);

    // Wenn der Rückgabewert 0 ist, ist ein Fehler aufgetreten
    if(0 == hWnd)
    {
        MessageBox(0,"Fehler","Fehler",MB_OK);
        return 0;
    }

	// Struktur, in der Informationen zur Nachricht gespeichert werden
    MSG msg;
    
    // Diese Schleife läuft bis die Nachricht WM_QUIT empfangen wird
    while(GetMessage(&msg,NULL,0,0))
	{
        // Nachricht an die Callbackfunktion senden
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    // Rückgabewert an Windows
    return 0;
}


HWND CreateMainWindow(HINSTANCE hInstance)
{
    WNDCLASSEX wndClass;                                   // WNDCLASSEX Struktur
  
    // Struktur initialisieren
    wndClass.cbSize        = sizeof(WNDCLASSEX);           // Größe angeben (nie vergessen!)
    wndClass.style         = CS_DBLCLKS | CS_OWNDC |
                             CS_HREDRAW | CS_VREDRAW;      // Standard Stile
    wndClass.lpfnWndProc   = WindowFunc;                   // Die Callback Funktion angeben

    wndClass.cbClsExtra    = 0;                            // Zusätzliche Angaben, wird nicht benötigt
    wndClass.cbWndExtra    = 0;                            // Zusätzliche Angaben, wird nicht benötigt
    wndClass.hInstance     = hInstance;                    // Anwendungsinstanz

    wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);  // Weisser Pinsel
    wndClass.hCursor       = LoadCursor(NULL, IDC_ARROW);  // Normaler Cursor
    wndClass.lpszMenuName  = NULL;                         // Das Fenster hat kein Menü
    wndClass.lpszClassName = "WindowClass";                // Der Name der Klasse
    //wndClass.hIcon         = LoadIcon(NULL, IDI_WINLOGO);  // Windows Logo
    //wndClass.hIconSm       = LoadIcon(NULL, IDI_WINLOGO);  // Windows Logo

    RegisterClassEx(&wndClass);

    return CreateWindowEx(NULL,                   // Keine erweiterten Stile nutzen
                          "WindowClass",          // Klassenname
                          "Ein einfaches Fenster",// Fenstertitel
                          WS_OVERLAPPEDWINDOW |   // Fenster
                          WS_VISIBLE,             // Eigenschaften
                          100, 100, 400, 300,     // Anfangsposition und Größe
                          NULL,                   // Handle des Elternfensters
                          NULL,                   // Handle des Menüs
                          hInstance,              // Anwendungsinstanz
                          NULL);                  // wird nicht benötigt
}


// Diese Funktion wird von Windows aufgrufen, wenn eine Nachricht
// für Ihr Programm vorliegt
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    // testen, um welche Nachticht es sich handelt
    switch(msg)
    {
        // das Fenster soll geschlossen werden
        case WM_DESTROY:
                    PostQuitMessage(0);
                    return 0;
                break;
    
        // das Fenster soll neu gezeichnet werden
        case WM_PAINT:
                    PAINTSTRUCT ps;
                    HDC hDC;
                    
                    // Handle des Device Context anfordern
                    hDC = BeginPaint(hWnd,&ps);    

                    // drei neue Stift mit verschiedenen Farben und
                    // Strichstärken erzeugen
                    long PenRed   = CreatePen(PS_SOLID,3,RGB(255,0,0));
                    long PenGreen = CreatePen(PS_SOLID,2,RGB(0,255,0));
                    long PenBlue  = CreatePen(PS_SOLID,1,RGB(0,0,255));
              
                  
                    
                    SetPixel(ps.hdc, 20, 20, RGB(25,100,100));		//setze Pixel



                    // mitteilen, dass die Zeichenoperationen abgeschlossen sind
                    EndPaint(hWnd,&ps);
                    
                    return 0;
                break;
    }

    // Wenn wir uns nicht um die Nachricht gekümmert haben
    // wird sie an die Standardnachrichtenverarbeitung von Windows
    // geschickt
    return (DefWindowProc(hwnd, msg, wParam, lParam));
}




ohh and a GDI mouse-message code:

Code:
#include <litec.h>		//Lite-C legacy Mode
#include <stdio.h>		//Stanard C
#include <windows.h>		//Windows API
#include <d3d9.h>			//direct X 9




// Prototypen

// Anwendungsfenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance);

//Callback Funktion zur Nachrichtenbehandlung
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);


// Das Fensterhandle
HWND hWnd = 0;


// Windows main-Funktion
int WINAPI WinMain(HINSTANCE hInstance,      // Handle der Programminstanz
                   HINSTANCE hPrevInstance,  // Handle der letzten Instanz
                   LPSTR lpCmdLine,          // Kommandozeile
                   int nCmdShow)             // Art wie das Fenster angezeigt werden soll
{   
    // Fenster erzeugen und Handle speichern
    hWnd = CreateMainWindow(hInstance);

    // Wenn der Rückgabewert 0 ist, ist ein Fehler aufgetreten
    if(0 == hWnd)
    {
        MessageBox(0,"Fehler","Fehler",MB_OK);
        return 0;
    }

	// Struktur, in der Informationen zur Nachricht gespeichert werden
    MSG msg;
    		    
    // Diese Schleife läuft bis die Nachricht WM_QUIT empfangen wird
    while(GetMessage(&msg,NULL,0,0))
	{
        // Nachricht an die Callbackfunktion senden
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    // Rückgabewert an Windows
    return 0;
}


HWND CreateMainWindow(HINSTANCE hInstance)
{
    WNDCLASSEX wndClass;                                   // WNDCLASSEX Struktur
  
    // Struktur initialisieren
    wndClass.cbSize        = sizeof(WNDCLASSEX);           // Größe angeben (nie vergessen!)
    wndClass.style         = CS_DBLCLKS | CS_OWNDC |
                             CS_HREDRAW | CS_VREDRAW;      // Standard Stile
    wndClass.lpfnWndProc   = WindowFunc;                   // Die Callback Funktion angeben

    wndClass.cbClsExtra    = 0;                            // Zusätzliche Angaben, wird nicht benötigt
    wndClass.cbWndExtra    = 0;                            // Zusätzliche Angaben, wird nicht benötigt
    wndClass.hInstance     = hInstance;                    // Anwendungsinstanz

    wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);  // Weisser Pinsel
    wndClass.hCursor       = LoadCursor(NULL, IDC_ARROW);  // Normaler Cursor
    wndClass.lpszMenuName  = NULL;                         // Das Fenster hat kein Menü
    wndClass.lpszClassName = "WindowClass";                // Der Name der Klasse

    RegisterClassEx(&wndClass);

    return CreateWindowEx(NULL,                   // Keine erweiterten Stile nutzen
                          "WindowClass",          // Klassenname
                          "Ein einfaches Fenster",// Fenstertitel
                          WS_OVERLAPPEDWINDOW |   // Fenster
                          WS_VISIBLE,             // Eigenschaften
                          100, 100, 400, 300,     // Anfangsposition und Größe
                          NULL,                   // Handle des Elternfensters
                          NULL,                   // Handle des Menüs
                          hInstance,              // Anwendungsinstanz
                          NULL);                  // wird nicht benötigt
}


// Diese Funktion wird von Windows aufgrufen, wenn eine Nachricht
// für Ihr Programm vorliegt
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    HDC hDC; // Handle für einen Device Context deklarieren

    // testen, um welche Nachticht es sich handelt
    switch(msg)
    {
        // das Fenster soll geschlossen werden
        case WM_DESTROY:
                    PostQuitMessage(0);
                    return 0;
                break;
    
        // die linke Maustaste wurde gedrückt
        case WM_LBUTTONDOWN:
                              
                    int x1,y1,x2,y2;
                    
                    hDC = GetDC(hWnd);

                    // Position berechnen 
                    x1 = LOWORD(lParam); 
                    y1 = HIWORD(lParam); 
                    x2 = x1 + 50;
                    y2 = y1 + 50;
                    
                    // Rechteck ausgeben
                    Rectangle(hDC,x1,y1,x2,y2);
                                      
                    ReleaseDC(hWnd,hDC);
                    
                    return 0;                                             
                break;          

        // die rechte Maustaste wurde gedrückt
       case WM_RBUTTONDOWN:
                
                    // Fensterinhalt löschen
                    InvalidateRect(hWnd,0,TRUE);
                    
                    return 0;
                break;

       // die Maus wurde bewegt
       case WM_MOUSEMOVE:
                                                
                    int x,y;
                    char String[25];

                    hDC = GetDC(hWnd);
                  
                    x = LOWORD(lParam); 
                    y = HIWORD(lParam); 
                                        
                    // Koordinaten ausgeben
                    sprintf(String,"%-4d %-4d",x,y);
                    TextOut(hDC,0,0,String,strlen(String));
                
                    ReleaseDC(hWnd,hDC);

                    return 0;                
                break;          
    }

    // Wenn wir uns nicht um die Nachricht gekümmert haben
    // wird sie an die Standardnachrichtenverarbeitung von Windows
    // geschickt
    return DefWindowProc(hwnd, msg, wParam, lParam);
}




a gdi-text:

Code:
#include <litec.h>		//Lite-C legacy Mode
#include <stdio.h>		//Stanard C
#include <windows.h>		//Windows API
#include <d3d9.h>			//direct X 9


int i;		//Lite-C lässt hier folgendes nicht zu: for(int i; i<100; i+=10)..... -> i muss vorher definiert werden



// Prototypen

// Anwendungsfenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance);

//Callback Funktion zur Nachrichtenbehandlung
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);


// Das Fensterhandle
HWND hWnd = 0;


// Windows main-Funktion
int WINAPI WinMain(HINSTANCE hInstance,      // Handle der Programminstanz
                   HINSTANCE hPrevInstance,  // Handle der letzten Instanz
                   LPSTR lpCmdLine,          // Kommandozeile
                   int nCmdShow)             // Art wie das Fenster angezeigt werden soll
{   
    // Fenster erzeugen und Handle speichern
    hWnd = CreateMainWindow(hInstance);

    // Wenn der Rückgabewert 0 ist, ist ein Fehler aufgetreten
    if(0 == hWnd)
    {
        MessageBox(0,"Fehler","Fehler",MB_OK);
        return 0;
    }

	// Struktur, in der Informationen zur Nachricht gespeichert werden
    MSG msg;
    
    // Diese Schleife läuft bis die Nachricht WM_QUIT empfangen wird
    while(GetMessage(&msg,NULL,0,0))
	{
        // Nachricht an die Callbackfunktion senden
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    // Rückgabewert an Windows
    return 0;
}


HWND CreateMainWindow(HINSTANCE hInstance)
{
    WNDCLASSEX wndClass;                                   // WNDCLASSEX Struktur
  
    // Struktur initialisieren
    wndClass.cbSize        = sizeof(WNDCLASSEX);           // Größe angeben (nie vergessen!)
    wndClass.style         = CS_DBLCLKS | CS_OWNDC |
                             CS_HREDRAW | CS_VREDRAW;      // Standard Stile
    wndClass.lpfnWndProc   = WindowFunc;                   // Die Callback Funktion angeben

    wndClass.cbClsExtra    = 0;                            // Zusätzliche Angaben, wird nicht benötigt
    wndClass.cbWndExtra    = 0;                            // Zusätzliche Angaben, wird nicht benötigt
    wndClass.hInstance     = hInstance;                    // Anwendungsinstanz

    wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);  // Weisser Pinsel
    wndClass.hCursor       = LoadCursor(NULL, IDC_ARROW);  // Normaler Cursor
    wndClass.lpszMenuName  = NULL;                         // Das Fenster hat kein Menü
    wndClass.lpszClassName = "WindowClass";                // Der Name der Klasse
    //wndClass.hIcon         = LoadIcon(NULL, IDI_WINLOGO);  // Windows Logo
    //wndClass.hIconSm       = LoadIcon(NULL, IDI_WINLOGO);  // Windows Logo

    RegisterClassEx(&wndClass);

    return CreateWindowEx(NULL,                   // Keine erweiterten Stile nutzen
                          "WindowClass",          // Klassenname
                          "Ein einfaches Fenster",// Fenstertitel
                          WS_OVERLAPPEDWINDOW |   // Fenster
                          WS_VISIBLE,             // Eigenschaften
                          100, 100, 400, 300,     // Anfangsposition und Größe
                          NULL,                   // Handle des Elternfensters
                          NULL,                   // Handle des Menüs
                          hInstance,              // Anwendungsinstanz
                          NULL);                  // wird nicht benötigt
}


// Diese Funktion wird von Windows aufgrufen, wenn eine Nachricht
// für Ihr Programm vorliegt
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    // testen, um welche Nachticht es sich handelt
    switch(msg)
    {
        // das Fenster soll geschlossen werden
        case WM_DESTROY:
                    PostQuitMessage(0);
                    return 0;
                break;
    
        // das Fenster muss neu gezeichnet werden
        case WM_PAINT:
                    PAINTSTRUCT ps;
                    HDC hDC;
                    
                    // Handle des Device Context anfordern
                    hDC = BeginPaint(hWnd,&ps);    
                
                    // 10 * Hallo in rot ausgeben
                    for(i=0;i<400;i+=20)
                    {
                        // Farbe setzen
                        SetTextColor(hDC,RGB(i,0,0));

                        TextOut(hDC,i,i,"Hallo",5);
                    }

                    // mitteilen, dass die Zeichenoperationen abgeschlossen sind
                    EndPaint(hWnd,&ps);
                    
                    return 0;
                break;
    }

    // Wenn wir uns nicht um die Nachricht gekümmert haben
    // wird sie an die Standardnachrichtenverarbeitung von Windows
    // geschickt
    return (DefWindowProc(hwnd, msg, wParam, lParam));
}




Maybe you can use it, maybe it helps you.....

cu
Marcel


A8c, Blender, FlStudio, Unity3d
Re: Example how to use GDI Grafix with lite-c Legacy Mode [Re: maslone1] #277766
07/10/09 15:09
07/10/09 15:09
Joined: Aug 2004
Posts: 1,345
Kyiv, Ukraine
VeT Offline

Serious User
VeT  Offline

Serious User

Joined: Aug 2004
Posts: 1,345
Kyiv, Ukraine
great, but i think, you may show in the thread name, that it belongs to legacy mode with the help of [legacy] or something like that, as this thread can be lost among another


1st prize: Lite-C and Newton 2.17 by Vasilenko Vitaliy

Newton2 videos: http://tinyurl.com/NewtonVideos
LiteC+Newton2 discussion: http://tinyurl.com/NewtonWrapperDiscussion
Latest LiteC+Newton2 version(v23, from 29.10.2009): http://depositfiles.com/files/ae1l0tpro
Re: Example how to use GDI Grafix with lite-c Legacy Mode [Re: VeT] #277795
07/10/09 18:31
07/10/09 18:31
Joined: Jul 2004
Posts: 1,710
MMike Offline
Serious User
MMike  Offline
Serious User

Joined: Jul 2004
Posts: 1,710
marcel, nice to see you, what does GDI stands? you mean draw window buttons etc, with window style?

Re: Example how to use GDI Grafix with lite-c Legacy Mode [Re: MMike] #277863
07/11/09 06:05
07/11/09 06:05
Joined: Jul 2007
Posts: 424
EUROPE
maslone1 Offline OP
Senior Member
maslone1  Offline OP
Senior Member

Joined: Jul 2007
Posts: 424
EUROPE
Hey Mike! also nice to see u!

GDI stands for "Graphics Device Interface".
The GDI is for all cinds of "window-outputs".
So it is for a text, for 2d grafix,.... for the visual things....
also for the printer (is also a visual output wink ).
So, yes its also for drawing windows button.

cheers
Marcel


A8c, Blender, FlStudio, Unity3d

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1