?
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);
}