WM_PAINT
-
hi leute....
hab mal wieder n kleines prob und hoffe ihr könnt mir helfen. und zwar soll ich n programm schreiben, was einfach nur n leeres fenster ist. ist ja soweit null problem. jetzt soll das fenster nach jeder änderung (minimieren, maximieren, größe verändern) die aktuelle höhe und breite anzeigen. naja, soweit bin ich jetzt:
[code
]#include <windows.h> LRESULT CALLBACK Fensterfunktion(HWND hwnd,UINT message, WPARAM wparam, LPARAM lparam) { int x,y,nWidth,nHeight,fwSizeType; char s[100]; HDC dc; PAINTSTRUCT ps; switch(message) { case WM_PAINT: dc=BeginPaint(hwnd, &ps); if (dc != NULL) SetTextColor(dc,RGB(0,0,0)); TextOut(dc,50,50, "hier sollte dann höhe und breite erscheinen",50); EndPaint(hwnd, &ps); return 0; case WM_SIZE: fwSizeType = wparam; nWidth = LOWORD(lparam); nHeight = HIWORD(lparam); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, message, wparam, lparam); } int WINAPI WinMain(HINSTANCE dieseInstanz,HINSTANCE vorigeInstanz,LPSTR t, int d) { MSG n; HWND f; char szAppName[]="Eine neue Fensterklasse"; WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW ; wc.lpfnWndProc = Fensterfunktion; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = dieseInstanz; wc.hIcon = LoadIcon(NULL, IDI_INFORMATION); wc.hCursor = LoadCursor(NULL, IDC_CROSS); wc.hbrBackground= CreateSolidBrush(RGB(255,255,255)); wc.lpszMenuName = NULL; wc.lpszClassName= szAppName; if (!RegisterClass(&wc)) { return 0; }; f = CreateWindow ( szAppName, "Fenster", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 100, 800, 600, NULL, NULL, dieseInstanz, NULL); while (GetMessage(&n,NULL,0,0) ) { DispatchMessage(&n); }; return n.wParam; }[/code]
also ich glaub, das es soweit erstmal funktionieren würde, nur komm ich bei der ausgabe nicht weiter. wie gibt man variablen aus?!
sry - bin nich allzu lang im winapi-geschäft

thx für jede hilfe!!!!!
-
Ist doch klar: Da wo unter TextOut() ""hier sollte dann höhe und breite erscheinen" steht, setzt Du nWidth und nHeight ein.
-
if (dc != NULL) { char szText[200]; RECT rect; GetClientRect(hwnd,&rect); wsprintf(szText,"Höhe %d, Breite %d", rect.bottom-rect.top, rect.right-rect.left); SetTextColor(dc,RGB(0,0,0)); TextOut(dc,50,50, szText, lstrlen(szText)); }
-
MAKEINTRESOURCE( IDB_MEIN_TOLLES_BMP )sollt's eigentlich tun.