 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Database Mini JLI'ler
Anmeldedatum: 20.11.2004 Beiträge: 24 Wohnort: Hinter den sieben Bergen Medaillen: Keine
|
Verfasst am: 02.01.2006, 20:52 Titel: Keine Buttons zum maximieren | schließen | minimieren |
|
|
Wenn sich son dunkler Master JLIer wie der Patrick hier schon rumschleicht, dann kann ich auch gleich mal mein eigenes Problem in den Raum werfen.
Kleines Vorwort noch. Das Fenster wird erzeugt, alles toll, außer den Buttons zum maximieren | minimieren | schließen.
Könnt ihr mir vielleicht helfen?
Code: | //window2.cpp
//Copyright Alexander Schlie
#include <windows.h>
//Callbakc Funktion
LRESULT CALLBACK WindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
switch(message)
{
case WM_DESTROY:
{
//Window wird geschlossen
PostQuitMessage(0);
break;
}
case WM_PAINT:
{
HDC hdc;
hdc = GetDC(hwnd);
TextOut(hdc, 100, 100, "3D Spieleprogrammierung", strlen("3D Spieleprogrammierung"));
ReleaseDC(hwnd, hdc);
break;
}
return 0;
}
return (DefWindowProc(hwnd, message, wparam, lparam));
}
//Main Funktion
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
//MessageBox zu Beginn
MessageBox(NULL, "Copyright 2005 Alexander Schlie", "Warning", MB_OK | MB_ICONINFORMATION);
WNDCLASSEX winclass;
const char AppName[] = "myclass";
winclass.cbSize = sizeof(WNDCLASSEX);
winclass.style = CS_HREDRAW;
winclass.lpfnWndProc = WindowProc;
winclass.cbClsExtra = 0;
winclass.cbWndExtra = 0;
winclass.hInstance = hInstance;
winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); // Icon wird festgelegt
winclass.hCursor = LoadCursor(NULL, IDC_ARROW); //Cursur wird festgelegt
winclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH); //Hintergrundfarbe des Fensters auf weiß gesetzt
winclass.lpszMenuName = NULL; //Menü für das Fenster wird definiert
winclass.lpszClassName = AppName; //Name der Klasse
winclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION); // Icon der verkleinerten version auf der Taskleiste
if (!(RegisterClassEx(&winclass)))
{
return 0;
}
CreateWindowEx(NULL,
AppName,
"3D-Spieleprogrammierung",
WS_OVERLAPPED | WS_VISIBLE,
0, 0,
500, 400,
NULL,
NULL,
hInstance,
NULL);
MSG message;
while(GetMessage(&message, NULL, 0, 0))
{
TranslateMessage(&message);
DispatchMessage(&message);
} //While Schleife
return 0;
}//Main Funktion
|
Danke |
|
Nach oben |
|
 |
Blubb-Tec JLI'ler

Alter: 34 Anmeldedatum: 29.03.2005 Beiträge: 171 Wohnort: Düsseldorf Medaillen: Keine
|
Verfasst am: 02.01.2006, 21:07 Titel: |
|
|
alsooo, das liegt an folgendem:
statt
CPP: | CreateWindowEx(NULL,
AppName,
"3D-Spieleprogrammierung",
WS_OVERLAPPED | WS_VISIBLE,
0, 0,
500, 400,
NULL,
NULL,
hInstance,
NULL);
|
musst du
CPP: | CreateWindowEx(NULL,
AppName,
"3D-Spieleprogrammierung",
WS_OVERLAPPEDWINDOW | WS_VISIBLE;
0, 0,
500, 400,
NULL,
NULL,
hInstance,
NULL);
|
schreiben, weil WS_OVERLAPPED nicht die boxen miteinschließt
dann noch was:
wenn du die Nachricht WM_PAINT behandelst, ich weiss nich ob es absicht ist, solltest du statt GetDC() und ReleaseDC() besser BeginPaint() und EndPaint() benutzen, da gibbet wichtige Unterschiede
und mach aus der zeile
CPP: | winclass.style = CS_HREDRAW; |
das hier:
CPP: | winclass.style = CS_HREDRAW | CS_VREDRAW; |
damit das Fenster auch neugezeichnet wird, fals die vertikale Größe verändert wird
ansonsten, lies dir mal auf www.germangamedev.de die ersten Teile von "Funny Break" durch, da wird dir eine bessere Möglichkeit für die Nachrichtenbehandlung gezeigt
[edit]hab jetzt mal einen spruch von dir in meine Signatur gepackt [/edit] _________________ www.planlos.de
Zuletzt bearbeitet von Blubb-Tec am 02.01.2006, 21:23, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 02.01.2006, 21:16 Titel: |
|
|
/Thema abgespalten
Hey, wenn du schon ein neues Problem hast, dann kannst du das auch in einem neuen Thread erklären.
Im alten gings schließlich nur um den C++ Standard... _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 02.01.2006, 21:50 Titel: |
|
|
In der MSDN steht bei CreateWindow eine detailirte auflistung, aller möglichkeiten zur Fenstererstellung:
WS_OVERLAPPED
Creates an overlapped window. An overlapped window has a title bar and a border. Same as the WS_TILED style.
WS_OVERLAPPEWINDOW
Creates an overlapped window with the WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, and WS_MAXIMIZEBOX styles. Same as the WS_TILEDWINDOW style.
usw. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
 |
|
|
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
|