Fenster maximieren

Hi,
Ich habe mit Win-api ein Fenster erstellt, welches WS_MAXIMIZE als Parameter in der CreateWindowEx Function hat.
Das funktioiert auch, das Fenster wird wenn ich kompile (dev-cpp) maximiert angezeigt. Aber wenn ich es nicht vom Compiler aus starte, sondern einfach die exe anklicke, erscheint es nicht maximiert.
Wie kann ich das umgehen und wieso ist das so?
OS ist Vista
 
Das ist so, weil in der Zeile 42 der Variable wieder ein neuer Wert zugewiesen wird (sie wird quasi überschrieben) - ist es beabsichtigt?
 
Nein ist es nicht, ich versteh zaw nicht wie das genau funktioniert, aber kann man das beheben?
Oder das Fenster durch eine Funktio nachträglich maximieren?
 
Dann eben direkter Hinweis:
Magst Du uns auch den Code zeigen? Oder dürfen wir raten, wo der Fehler liegen könnte?
 
Aso, sry aber das hat 100 pro nichts mitm code zu tun:
Code:
#include<windows.h>

LRESULT CALLBACK MainProcess(HWND hwndThisWindow,UINT message,WPARAM wparam,LPARAM lparam);

int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR szCmdLine,
int iCmdShow)
{
	  WNDCLASSEX WCla;
	  HWND hwndMain;
	  MSG msg;
	  const char* szAppName="Funktions Programm";
	  
	  WCla.style=CS_HREDRAW|CS_VREDRAW;
			WCla.cbSize=sizeof(WNDCLASSEX);
			WCla.cbClsExtra=0;
			WCla.cbWndExtra=0;
	  WCla.lpfnWndProc=MainProcess;
	  WCla.lpszClassName=szAppName;
			WCla.lpszMenuName=0;
			WCla.hInstance=hInstance;
			WCla.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
			WCla.hCursor=LoadCursor(0,IDC_ARROW);
			WCla.hIcon=LoadIcon(0,IDI_APPLICATION);
			WCla.hIconSm=LoadIcon(0,IDI_APPLICATION);
			
			RegisterClassEx(&WCla);
			hwndMain=CreateWindowEx(0,szAppName,"Funktionen",WS_MAXIMIZE,0,0,
			300,150,
			0,0,hInstance,0);
			
			
			ShowWindow(hwndMain,5);
			UpdateWindow(hwndMain);
	  
	  while(GetMessage(&msg,0,0,0)>0)
	  {
				  TranslateMessage(&msg);
				  DispatchMessage(&msg);
			}
			
			return 0;
}
LRESULT CALLBACK MainProcess(HWND hwndThisWindow,UINT message,WPARAM wparam,LPARAM lparam)
{
   HDC hdc;
   PAINTSTRUCT ps;
			switch(message)
	  {
						case WM_DESTROY:
											PostQuitMessage(0);
											return 0;
			}
			return DefWindowProc(hwndThisWindow,message,wparam,lparam);
}
WIe ich halt gesagt habe, kompiliere ich und führe aus ist es maximiert, starte ich die Exe erscheint es mit den Breiten Höhen Werten etc. der Create Funktion.
 
Zeile 35: probiere es mal mit ShowWindow(hWnd,SW_MAXIMIZE)
statt mit ShowWindow(hWnd,SW_SHOW) wobei SW_MAXIMIZE ==3 entspricht.
Das wäre der Standardweg.

Sollte es nicht gehen (was schon seltsam wäre), hilft es, das
ShowWindow(hWnd,SW_MAXIMIZE) im Msg Loop zu platzieren:
Code:
case WM_CREATE:
     ShowWindow(hWnd,SW_MAXIMIZE);
     break;
Das sollte dann das Fenster nach dem Erstellen maximieren.
 
Jo, thx das mit dem ShowWindow hat geholfen, allerdings ist das schon sletsam, weil ich die 3 (als wert eingetippt) schon ausprobiert und es ging nicht .
 
Zurück
Oben