NC Area neuzeichnen
-
Hey alle zusammen,
ich hab ein Problem mit meinem Programm. Bisher geht es eig. nur darum ein schönes Fenster zu erzeugen, dass sich ein wenig vom Windows standart Fenster unterscheidet.
hWnd = CreateWindow(AppName, AppName, WS_CAPTION | WS_MINIMIZEBOX, xPos, yPos, width, height, NULL, NULL, hInstance, NULL);
Dann geb ich der NC Area eine andere Hintergrundfarbe in WM_NCPAINT:
hdc = GetDCEx(hWnd, (HRGN)wParam, DCX_WINDOW | DCX_INTERSECTRGN | 0x10000); FillRgn(hdc, (HRGN)wParam, CreateSolidBrush(RGB(150, 150, 150))); ReleaseDC(hWnd, hdc); return 0;
Bis dahin alles gut. Wenn ich das fenster nun minimiere und danach wieder in den Vordergrund hole wird das komplette Fenster in der Hintergrundfarbe der clientarea übermalt. Alles grau. Kann mir vielleicht jemand weiterhelfen?
Gruß Sepp
-
Hast du schon versucht der Client-Breich aus der Region (HRGN) auszuschneiden.
1.) Client-Bereich holen
2.) Client-Region erstellen mit CreateRectRgn(...)
3.) Die beiden Regionen kominiren CombineRgn(,,,RGN_XOR)
4.) Mit der neuen Region zeichnen