Sven
09.07.2004, 15:19
Hi,
also sowas habe ich noch nie gehabt. Ich wollte den Rahmen für ein Windows-Programm schreiben und habe beim testen immer eine ausgelastete Anwendung (laut Mauszeiger). Ich habe das ganze auf den nötigsten Windows-Programm-Rahmen zurück gedrängt, aber der Fehler besteht weiterhin. Ich habe den Code mit Anwendungsbeispielen aus Büchern und dem Internet verglichen, kann aber nichts finden was den Fehler verursacht.
Für alle, die sich das ganze noch mal anschauen möchten, als Anhang eine ZIP mit der EXE und der CPP-Datei.
Hier der Code:
// === Definitionen ======================================
#define UNICODE
#define WIN32_LEAN_AND_MEAN
// === Includes ==========================================
#include <windows.h>
// === Fenster-Prozedur ==================================
LRESULT CALLBACK MainWindow(HWND hWindow, UINT uMessage, WPARAM wParam, LPARAM lP
aram)
{
// Nachichten...
switch (uMessage)
{
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
}
return DefWindowProc(hWindow, uMessage, wParam, lParam);
}
// === Startfunktion =====================================
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine,
int nCmdShow)
{
// Elemente...
WNDCLASS SWindowClass;
HWND hWindowMain = NULL;
MSG SMessage;
// WNDCLASSEX-Struktur für Hauptfenster initialisieren...
SWindowClass.style = CS_HREDRAW | CS_VREDRAW;
SWindowClass.lpfnWndProc = MainWindow;
SWindowClass.cbClsExtra = 0;
SWindowClass.cbWndExtra = 0;
SWindowClass.hInstance = hInstance;
SWindowClass.hIcon = NULL;
SWindowClass.hCursor = NULL;
SWindowClass.hbrBackground = GetSysColorBrush(COLOR_3DFACE);
SWindowClass.lpszMenuName = NULL;
SWindowClass.lpszClassName = TEXT("WindowClass");
// Fensterklasse für Hauptfenster registrieren...
if (!RegisterClass(&SWindowClass))
return 0;
// Hauptfenster erstellen...
hWindowMain = CreateWindow(
TEXT("WindowClass"),
TEXT("Window"),
WS_OVERLAPPEDWINDOW,
GetSystemMetrics(SM_CXSCREEN) / 4,
GetSystemMetrics(SM_CYSCREEN) / 4,
GetSystemMetrics(SM_CXSCREEN) / 2,
GetSystemMetrics(SM_CYSCREEN) / 2,
NULL,
NULL,
hInstance,
NULL);
if (!hWindowMain)
return 0;
// Hauptfenster maximiert anzeigen...
ShowWindow(hWindowMain, SW_MAXIMIZE);
UpdateWindow(hWindowMain);
// Nachichtenschleife...
while(GetMessage(&SMessage, NULL, 0, 0))
{
TranslateMessage(&SMessage);
DispatchMessage(&SMessage);
}
return (int)SMessage.wParam;
}
also sowas habe ich noch nie gehabt. Ich wollte den Rahmen für ein Windows-Programm schreiben und habe beim testen immer eine ausgelastete Anwendung (laut Mauszeiger). Ich habe das ganze auf den nötigsten Windows-Programm-Rahmen zurück gedrängt, aber der Fehler besteht weiterhin. Ich habe den Code mit Anwendungsbeispielen aus Büchern und dem Internet verglichen, kann aber nichts finden was den Fehler verursacht.
Für alle, die sich das ganze noch mal anschauen möchten, als Anhang eine ZIP mit der EXE und der CPP-Datei.
Hier der Code:
// === Definitionen ======================================
#define UNICODE
#define WIN32_LEAN_AND_MEAN
// === Includes ==========================================
#include <windows.h>
// === Fenster-Prozedur ==================================
LRESULT CALLBACK MainWindow(HWND hWindow, UINT uMessage, WPARAM wParam, LPARAM lP
aram)
{
// Nachichten...
switch (uMessage)
{
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
}
return DefWindowProc(hWindow, uMessage, wParam, lParam);
}
// === Startfunktion =====================================
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine,
int nCmdShow)
{
// Elemente...
WNDCLASS SWindowClass;
HWND hWindowMain = NULL;
MSG SMessage;
// WNDCLASSEX-Struktur für Hauptfenster initialisieren...
SWindowClass.style = CS_HREDRAW | CS_VREDRAW;
SWindowClass.lpfnWndProc = MainWindow;
SWindowClass.cbClsExtra = 0;
SWindowClass.cbWndExtra = 0;
SWindowClass.hInstance = hInstance;
SWindowClass.hIcon = NULL;
SWindowClass.hCursor = NULL;
SWindowClass.hbrBackground = GetSysColorBrush(COLOR_3DFACE);
SWindowClass.lpszMenuName = NULL;
SWindowClass.lpszClassName = TEXT("WindowClass");
// Fensterklasse für Hauptfenster registrieren...
if (!RegisterClass(&SWindowClass))
return 0;
// Hauptfenster erstellen...
hWindowMain = CreateWindow(
TEXT("WindowClass"),
TEXT("Window"),
WS_OVERLAPPEDWINDOW,
GetSystemMetrics(SM_CXSCREEN) / 4,
GetSystemMetrics(SM_CYSCREEN) / 4,
GetSystemMetrics(SM_CXSCREEN) / 2,
GetSystemMetrics(SM_CYSCREEN) / 2,
NULL,
NULL,
hInstance,
NULL);
if (!hWindowMain)
return 0;
// Hauptfenster maximiert anzeigen...
ShowWindow(hWindowMain, SW_MAXIMIZE);
UpdateWindow(hWindowMain);
// Nachichtenschleife...
while(GetMessage(&SMessage, NULL, 0, 0))
{
TranslateMessage(&SMessage);
DispatchMessage(&SMessage);
}
return (int)SMessage.wParam;
}