JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Keine Buttons zum maximieren | schließen | minimieren

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
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

BeitragVerfasst am: 02.01.2006, 20:52    Titel: Keine Buttons zum maximieren | schließen | minimieren Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Blubb-Tec
JLI'ler


Alter: 34
Anmeldedatum: 29.03.2005
Beiträge: 171
Wohnort: Düsseldorf
Medaillen: Keine

BeitragVerfasst am: 02.01.2006, 21:07    Titel: Antworten mit Zitat

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 Wink

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 Wink
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 Very Happy
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 Wink

[edit]hab jetzt mal einen spruch von dir in meine Signatur gepackt Very Happy[/edit]
_________________
www.planlos.de


Zuletzt bearbeitet von Blubb-Tec am 02.01.2006, 21:23, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 02.01.2006, 21:16    Titel: Antworten mit Zitat

/Thema abgespalten
Hey, wenn du schon ein neues Problem hast, dann kannst du das auch in einem neuen Thread erklären. Wink
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


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

BeitragVerfasst am: 02.01.2006, 21:50    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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