S
Ich habe gerade nach dem Tutorial von Sterminio Productions ein EditWindow erstellen wollen, habe aber eigene Änderungen vorgenommen und evtl. Dinge übersehen und deshalb erstellt sich bei mir jetzt gar kein EditWindow, aber es wird mir auch kein Fehler angezeigt.
Mein Code:
// main_cpp //
#include <Windows.h>
#include <iostream>
int width = 640;
int height = 420;
LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
bool InitWndClassEx ( WNDCLASSEX *WndClassEx, HINSTANCE hInstance, const char szClassName[] = "Hallo");
const char szClassName[] = "Hallo";
char szTitle[] = "1.Programm Grafic3 Silent1297 2011 ©";
HWND hWndParent; //legt die Eigenschaften des ParentWindows fest.
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR szCmdLine, int iCmdShow)
{
WNDCLASSEX WndClassEx; // legt die Grundeigenschaften für das Fenster fest.
MSG msg; //darin werden die Daten gespeichert.
HINSTANCE hChildInst = NULL;
// Registrierung //
InitWndClassEx ( &WndClassEx, hInstance, szClassName);
// Fenster Erstellen //
hWndParent = CreateWindowEx (NULL, // beeinhaltet die Folgenden Eigenschaften und die Eigenschaften aus WndClassEx
szClassName, //hierüber werden die Eigenschaften aus WndClassEx. eingebunden
szTitle,
WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX, //Fenster (Minimierungsbutton.....
300, //Abstand-Oben
600, //Abstand-Links
width, // Breite
height, // Höhe
NULL,
NULL,
hInstance,
NULL);
if ( hWndParent == NULL )
{MessageBox ( NULL, "Create Window failed", "Error", MB_OK);
return false;
}
{
int cx = GetSystemMetrics(SM_CXSCREEN); //cx = desktopbreite ermitteln
int cy = GetSystemMetrics(SM_CYSCREEN);//cx = desktophöhe ermitteln
int px = (cx - width) / 2; //AbstanddesFensters von links errechnen
int py = (cy - height) / 2; //AbstanddesFensters von oben errechnen
MoveWindow( hWndParent, px, py, width, height, true);
}
ShowWindow( hWndParent, iCmdShow);
UpdateWindow (hWndParent);
while( GetMessage ( &msg, hWndParent, NULL, NULL) > NULL) // -1 = Fehler | 0 // > 0
{
TranslateMessage( &msg ); // wird in Character-Message übersetzt
DispatchMessage ( &msg ); // wird verschickt an die Callback Funktion
};
// WINDOW-PROCEDUR(Einleitungsteil) -> WNDCLASSEX(Registrierung) -> HWND(Fenstereinstellungenfestlegen) -> MESSAGELOOP(Messages übersetzen und an die CALLBACK-Funktion weiterverschicken)
return 0;
}
HWND hWndEdit;
HINSTANCE hInstEdit;
LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) //Gehirn des eigentlichen Windows, Verarbeitung von Messages...
{
//Jede Message hat 2 Informationen ( wParam und lParam)
switch (msg)
{
case WM_CREATE:
hWndEdit = CreateWindow ( // beeinhaltet die Folgenden Eigenschaften und die Eigenschaften aus WndClassEx
"Edit", //hierüber werden die Eigenschaften aus WndClassEx. eingebunden
"EditWindow",
WS_OVERLAPPEDWINDOW | WS_CHILD |WS_VISIBLE, //Fenster (Minimierungsbutton.....
CW_USEDEFAULT, //Abstand-Oben
CW_USEDEFAULT, //Abstand-Links
CW_USEDEFAULT, // Breite
CW_USEDEFAULT, // Höhe
hWndParent,
NULL,
hInstEdit,
NULL);
break;
case WM_DESTROY: //Fenster Ende (Wenn auf das X-geklickt wird
if(hWnd == hWndParent)
{
PostQuitMessage(0);
}
break;
default:
return DefWindowProc ( hWnd, msg, wParam, lParam);
}
return 0;
}
bool InitWndClassEx ( WNDCLASSEX *WndClassEx , HINSTANCE hInstance, const char *szClassName) //Funktion mit Defaultwerten für zB ChildWindows
{
WndClassEx->cbSize = sizeof( *WndClassEx);
WndClassEx->style = NULL;
WndClassEx->lpfnWndProc = (WNDPROC)WndProc; // hWnd -> CreateWindow (szClassName ) -> WndClass.
WndClassEx->cbClsExtra = NULL;
WndClassEx->cbWndExtra = NULL;
WndClassEx->hInstance = hInstance;
WndClassEx->hIcon = LoadIcon( NULL, IDI_WARNING); //Icon
WndClassEx->hCursor = LoadCursor( NULL,IDC_ARROW); //Cursor
WndClassEx->hbrBackground = (HBRUSH) GetStockObject ( WHITE_BRUSH) ; //Fensterfarbe
WndClassEx->lpszMenuName = NULL;
WndClassEx->lpszClassName = szClassName; // C-String
WndClassEx->hIconSm = LoadIcon (NULL, IDI_APPLICATION);
if ( !RegisterClassEx ( WndClassEx ))
{MessageBox ( NULL, "Register Class failed", "Error", MB_OK);
return false;
}
}
Sieht jemand woran es liegt ?
Gruß
silent12