Windows Func Problem
-
#include <windows.h>
#include <stdio.h>HWND CreateWindowEx(
DWORD dwExStyle,
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
LPVOID lpParam,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance
);LRESULT CALLBACK MessageHandler(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_CREATE:
return 0;
break;
case WM_LBUTTONDBLCLK:
return 0;
break;
case WM_CLOSE:
return 0;
break;
}
return (DefWindowProc(hWnd, msg, wParam, lParam));
}HRESULT CALLBACK WindowFunc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
break;
case WM_LBUTTONDOWN:
PAINTSTRUCT ps;
HDC hDC;hDC = BeginPaint(hWnd,&ps);
HPEN PenRed = CreatePen(PS_SOLID,3,0xFF004BFF);
HPEN PenGreen = CreatePen(PS_SOLID,2,0x2DFF00FF);
HPEN PenBlue = CreatePen(PS_SOLID,1,0x0000FFFF);SelectObject(hDC,PenBlue);
Ellipse(hDC,60,5,340,250);
Ellipse(hDC,150,190,250,210);SelectObject(hDC,PenGreen);
Rectangle(hDC,110,40,160,80);
Rectangle(hDC,240,40,290,80);SelectObject(hDC,PenRed);
LineTo(hDC,180,150);
LineTo(hDC,220,150);
LineTo(hDC,200,120);DeleteObject(PenRed);
DeleteObject(PenBlue);
DeleteObject(PenGreen);EndPaint(hWnd,&ps);
return 0;
break;
}
return (DefWindowProc(hWnd, msg, wparam, lparam));
}HWND CreateMainWindow(HINSTANCE hInstance)
{
WNDCLASSEX wndClass; // WNDCLASSEX Struktur// Struktur initialisieren
wndClass.cbSize = sizeof(WNDCLASSEX); // Größe angeben (nie vergessen!)
wndClass.style = CS_DBLCLKS | CS_OWNDC |
CS_HREDRAW | CS_VREDRAW; // Standard Stile
wndClass.lpfnWndProc = MessageHandler; // Die Callback Funktion angebenwndClass.cbClsExtra = 0; // Zusätzliche Angaben, wird nicht benötigt
wndClass.cbWndExtra = 0; // Zusätzliche Angaben, wird nicht benötigt
wndClass.hInstance = hInstance; // AnwendungsinstanzwndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // Weisser Pinsel
wndClass.hCursor = LoadCursor(NULL, IDC_ARROW); // Normaler Cursor
wndClass.lpszMenuName = NULL; // Das Fenster hat kein Menü
wndClass.lpszClassName = "WindowClass"; // Der Name der Klasse
wndClass.hIcon = LoadIcon(NULL, IDI_WINLOGO); // Windows Logo
wndClass.hIconSm = LoadIcon(NULL, IDI_WINLOGO); // Windows LogoRegisterClassEx(&wndClass);
return CreateWindowEx(NULL, // Keine erweiterten Stile nutzen
"WindowClass", // Klassenname
"Hello Windows", // Fenstertitel
WS_OVERLAPPEDWINDOW | // Fenster
WS_VISIBLE, // Eigenschaften
0, 0, 400, 300, // Anfangsposition und Größe
NULL, // Handle des Elternfensters
NULL, // Handle des Menüs
hInstance, // Anwendungsinstanz
NULL); // wird nicht benötigt
}typedef struct _WNDCLASSEX
{
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackround;
LPCTSTR lpszMenuName;
HICON hIconSm;
};HWND hWnd = 0;
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
hWnd = CreateMainWindow(hInstance);/*PAINTSTRUCT ps;
HDC hDC;hDC = BeginPaint(hWnd,&ps);
for(int i = 0; i < 200;i+=200)
{
SetTextColor(hDC,0xFF2800FF);
TextOut(hDC,i,i,"Hallortttt nana Ja",18);}
*/MessageBox(0,"Erfolgreich erstellt","Nachricht",MB_OK);
if(hWnd == 0)
{
MessageBox(0,"Fenster konnte nicht erzeugt werden","Fehler",MB_OK);
return 0;
}
MSG msg;// Diese Schleife läuft bis die Nachricht WM_QUIT empfangen wird
while(GetMessage(&msg,NULL,0,0))
{
// Nachricht an die Callbackfunktion senden
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
Das klappt nicht also das was in windowfuunc ist wird nicht angezeigt
-
http://www.c-plusplus.net/forum/200753
http://www.c-plusplus.net/forum/39405
http://www.c-plusplus.net/forum/310187
http://www.c-plusplus.net/forum/304133
http://www.tty1.net/smart-questions_de.html