Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Dev-C++/Win32Api] Anwendung maximiert starten



sixfriends
03-08-2005, 13:22
Hab da folgendes tolles Problem. Ich möchte meine Anwendung im maximierten Zustand starten, hab dazu das Flag WS_MAXIMIZE gesetzt (Zeile 25). Ich hab es in Dev-C++ kompiliert. Wenn ich das Prog aus Dev-C++ raus starte, öffnet sich das Fenster maximiert, bei Doppelklick auf die exe Datei allerdings nicht. Alles recht seltsam. Hat jemand ne Ahnung, was da schiefläuft? Benutze übrigens Win98....Hier noch der Code:


#include <windows.h>

LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nFunsterStil) {
MSG messages;
WNDCLASSEX wincl;
wincl.hInstance = hThisInstance;
wincl.lpszClassName = "bla";
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof (WNDCLASSEX);
wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

if (!RegisterClassEx (&wincl))
return 0;

HWND hwnd = CreateWindowEx (0,"bla","bla",
WS_OVERLAPPEDWINDOW | WS_MAXIMIZE,
CW_USEDEFAULT,CW_USEDEFAULT,400,500,
HWND_DESKTOP,NULL,hThisInstance,NULL);

ShowWindow (hwnd, nFunsterStil);
while (GetMessage (&messages, NULL, 0, 0)) {
TranslateMessage(&messages);
DispatchMessage(&messages);
}
return messages.wParam;
}

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message) {
case WM_DESTROY:
PostQuitMessage (0); break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}

cya - sixfriends

Christian81
04-08-2005, 10:11
Ich würde sagen hier leigt dein Problem:


ShowWindow (hwnd, nFunsterStil);

Damit überschreibst du WS_MAXIMIZE natürlich wieder...

sixfriends
06-08-2005, 13:51
Das ist schon klar. Ich benutz an der Stelle mittlerweile SW_SHOWMAXIMIZED.
Mir geht es allerdings um die Frage, warum es trotzdem funzt, wenn ich die Anwendung aus Dev-C++ raus starte.

Ich hab gerade gesehen, dass Dev-C++ die App mit nFunsterStil=5 aufruft und Windoof standardmässig mit 1. Ein weiteres Geheimnis gelüftet :D