wahre fenstergröße
-
wenn ich ein fenster mit createwindow() erstelle, stimmt die größe dannach nicht. wie bekomme ich die größe ohne rand z.B. auf wirkliche 100x100 Pixel?
-
GetSystemMetrics und dann n bisschen rechnen...
-
webfritzis lösung
http://www.c-plusplus.net/forum/viewtopic-var-p-is-745166-and-highlight-is-.html#745166
-
ok... besser

nein, sagen wir einfacher !
-
AdjustWindowRect
-
nirsaja schrieb:
ok... besser

nein, sagen wir einfacher !
hab mich auch überzeugen lassen

-
wenn ich ein fenster z.B. mit 100x100 erstelle, bekomme ich 100x114 raus. Ich hab border und clientbereich gemessen und die 114 haben damit nichts zu tun.
Ein Fenster mit 64x32 ist ca. 112x32 groß
CreateWindow() müsste doch egtl. funktionieren.
Ich habe auch noch SetWindowPos() probiert, weil in der MSDN ausdrücklich Breite und Höhe in Pixel steht. Funktioniert genauso wenig#include <windows.h> #include "Main.h" #include "resource.h" int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int nCmdShow) { char szAppName[] = "..."; HWND hwnd; MSG msg; WNDCLASSEX lpWndClass; lpWndClass.cbSize = sizeof(lpWndClass); lpWndClass.style = CS_HREDRAW | CS_VREDRAW; lpWndClass.lpfnWndProc = WndProc; lpWndClass.cbClsExtra = 0; lpWndClass.cbWndExtra = 0; lpWndClass.hInstance = hInstance; lpWndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); lpWndClass.hCursor = LoadCursor(NULL, IDC_ARROW); lpWndClass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH); lpWndClass.lpszMenuName = "IDR_MENU"; lpWndClass.lpszClassName = szAppName; lpWndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); RegisterClassEx (&lpWndClass); hwnd = CreateWindow(szAppName, "...", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 64, 32, NULL, NULL, hInstance, NULL); SetWindowPos(hwnd, NULL, NULL, NULL, 64, 32, SWP_FRAMECHANGED); ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_CREATE: return 0; case WM_DESTROY : PostQuitMessage (0) ; return 0; } return DefWindowProc (hwnd, uMsg, wParam, lParam); }