WinApi Fenster funktioniert nicht
-
Ich versuche gerade mein erstes Fenster zu programmieren. Geht aber nicht. Woran liegt es?
#include "stdafx.h" #include <windows.h> // Konstanten // ---------- // Fensterklassen-Name LPCTSTR lpszWCLASSNAME = L"ERSTES FENSTER"; LPCTSTR lpszTITLE = L"Mein erstes Fenster"; LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // Fensterklasse registrieren // -------------------------- // WNDCLASS-Strukur WNDCLASSEX WndClass; WNDPROC WndProc; // Struktur mit '0' vorbelegen memset(&WndClass,0,sizeof(WndClass)); WndClass.cbSize = sizeof(WndClass); // Fensterprozedur einhaengen WndClass.lpfnWndProc = WndProc; // Instanzen-Handle WndClass.hInstance = hInstance; // Icon fuer Fensterklasse laden WndClass.hIcon = LoadIcon(0,IDI_WINLOGO); // Cursor fuer Fensterklasse laden WndClass.hCursor = LoadCursor(0,IDC_UPARROW); // Fensterhintergrund setzen WndClass.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH); // Fensterklassen-Name WndClass.lpszClassName = lpszWCLASSNAME; // Fensterklasse registrieren RegisterClassEx(&WndClass); // Fenster erzeugen HWND hWindow; // Fenster-Handle hWindow = CreateWindowEx(0, // kein erweiterter Stil lpszWCLASSNAME, // Fensterklassen-Name lpszTITLE, // Fenstertitel WS_OVERLAPPEDWINDOW, // Fensterstil CW_USEDEFAULT, 0, // Position CW_USEDEFAULT, 0, // Groesse (HWND)0, // kein Parent-Fenster (HMENU)0, // kein Menu hInstance, // Instanzen-Handle NULL); // keine zusaetzl. Daten // Fehler abfangen if (hWindow == NULL) { MessageBox(0,L"Fehler beim CreateWindowEx(...)!", L"FEHLER",MB_OK); return 0; } ShowWindow (hWindow, nCmdShow); // Nachrichten-Schleife // -------------------- MSG strMessage; // Nachrichten-Struktur definieren // Auf Nachricht warten while (GetMessage(&strMessage,NULL,0,0)) { // Tastencode uebersetzen TranslateMessage(&strMessage); // Nachricht an Fensterprozedur verteilen DispatchMessage(&strMessage); } return 0; } LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { // Alles durch WINDOWS bearbeiten lassen return DefWindowProc(hWnd, uMsg, wParam, lParam); }warning C4700: Die nicht initialisierte lokale Variable "WndProc" wurde verwendet.Spuckt der Kompiler aus...
-
Wenn du die Zeile:
WNDPROC WndProc;Entfernst sollte es gehen.
-
evilissimo schrieb:
Wenn du die Zeile:
WNDPROC WndProc;Entfernst sollte es gehen.
Funzt jetzt... Thx!
-
Wie baue ich da einen Button ein?? Mit funktion am besten...
-
Einen Button kannst du mit CreateWindow erstellen
> http://msdn.microsoft.com/en-us/library/ms632679(VS.85).aspx