Ich würde gerne das mein Programm ein Bild ausgibt und hab das nun schon auf Direktx 9 gemacht
aber ich würde es gerne ohne machen eventuel mit gdi
oder mit gdi+
beim gdi hab ich schon die Ladenfunktion LoadImage.
aber wie gebe ich es aus?
ich habe bis jetze ein Fenster mit einer Callback schleife und das haut auch alles hin nur mit welcher funktion mahle ich nun dort ein BIld hinein
fals es jemand intreesiert
hier der code
// Das Fensterhandle
HWND hWnd = 0;
LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
break;
case WM_KEYDOWN:
switch(wParam)
{
// Wenn ESC gedrückt, Anwendung beenden
case VK_ESCAPE:
DestroyWindow(hWnd);
break;
}
break;
case WM_PAINT:
break;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
// Fenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance)
{
WNDCLASSEX wndClass =
{
sizeof(WNDCLASSEX), // Größe angeben
CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW, // Standardstile
MessageHandler, // Callback-Funktion
0, // Zusätzliche Angaben
0, // nicht benötigt
hInstance, // Anwendungsinstanz
LoadIcon(NULL, IDI_WINLOGO), // Windows-Logo
LoadCursor(NULL, IDC_ARROW), // Normaler Cursor
(HBRUSH)GetStockObject(WHITE_BRUSH), // Weißer Pinsel
NULL, // kein Menü
"WindowClass", // Der Name der Klasse
LoadIcon(NULL, IDI_WINLOGO) // Windows Logo
};
// Klasse registrieren
RegisterClassEx(&wndClass);
return CreateWindowEx(NULL, // Keine erweiterten Stile nutzen
"WindowClass", // Klassenname
"BILD", // Fenstertitel
WS_OVERLAPPEDWINDOW | // Fenster
WS_VISIBLE, // Eigenschaften
0, 0, // Anfangsposition
800,600, // und Größe des Fensters
NULL, // Handle des Elternfensters
NULL, // Handle des Menüs
hInstance, // Anwendungsinstanz
NULL); // wird nicht benötigt
}
// 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,"Fenster konnte nicht erzeugt werden","Fehler",MB_OK);
return -1;
}
// 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;
}
alles ganz simbel under Windows programmiert
aber ich würde es gerne ohne machen eventuel mit gdi
oder mit gdi+
beim gdi hab ich schon die Ladenfunktion LoadImage.
aber wie gebe ich es aus?
ich habe bis jetze ein Fenster mit einer Callback schleife und das haut auch alles hin nur mit welcher funktion mahle ich nun dort ein BIld hinein
fals es jemand intreesiert
hier der code
// Das Fensterhandle
HWND hWnd = 0;
LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
break;
case WM_KEYDOWN:
switch(wParam)
{
// Wenn ESC gedrückt, Anwendung beenden
case VK_ESCAPE:
DestroyWindow(hWnd);
break;
}
break;
case WM_PAINT:
break;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
// Fenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance)
{
WNDCLASSEX wndClass =
{
sizeof(WNDCLASSEX), // Größe angeben
CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW, // Standardstile
MessageHandler, // Callback-Funktion
0, // Zusätzliche Angaben
0, // nicht benötigt
hInstance, // Anwendungsinstanz
LoadIcon(NULL, IDI_WINLOGO), // Windows-Logo
LoadCursor(NULL, IDC_ARROW), // Normaler Cursor
(HBRUSH)GetStockObject(WHITE_BRUSH), // Weißer Pinsel
NULL, // kein Menü
"WindowClass", // Der Name der Klasse
LoadIcon(NULL, IDI_WINLOGO) // Windows Logo
};
// Klasse registrieren
RegisterClassEx(&wndClass);
return CreateWindowEx(NULL, // Keine erweiterten Stile nutzen
"WindowClass", // Klassenname
"BILD", // Fenstertitel
WS_OVERLAPPEDWINDOW | // Fenster
WS_VISIBLE, // Eigenschaften
0, 0, // Anfangsposition
800,600, // und Größe des Fensters
NULL, // Handle des Elternfensters
NULL, // Handle des Menüs
hInstance, // Anwendungsinstanz
NULL); // wird nicht benötigt
}
// 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,"Fenster konnte nicht erzeugt werden","Fehler",MB_OK);
return -1;
}
// 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;
}
alles ganz simbel under Windows programmiert
Zuletzt bearbeitet: