Probleme mit WM_NCPAINT und Beispielcode aus der MSDN.
-
Hallo zusammen,
Ich habe hier folgenden Code in mein Programm eingebaut:
case WM_NCPAINT: { HDC hdc; hdc = GetDCEx(hwnd, (HRGN)wParam, DCX_WINDOW|DCX_INTERSECTRGN); if(hdc == NULL) MessageBeep(-1); // Paint into this DC ReleaseDC(hwnd, hdc); } break;
Aber der HDC, der von GetDCEx zurückgegeben wird, ist immer NULL
(Es pieept immer) !
Habt ihr ne Idee, was da falsch ist ? - Danke schonmal.
-
*push* - Der Code ist direkt aus der MSDN kopiert - der muss doch eigentlich funktionieren, hat denn keine 'ne Idee
?
-
Probier mal :
//hdc = GetDCEx(hwnd, (HRGN)wParam, DCX_WINDOW|DCX_INTERSECTRGN); hdc = GetDCEx (hwnd, (HRGN)wParam, DCX_WINDOW | DCX_INTERSECTRGN | 0x10000);
-
Wow! Das geht! Danke! Weiß zwar nicht warum das mit dem zusätzlichen Flag geht, aber okay.
Weißt Du vllt auch, wie ich die 'sizing-border' eines Fensters verkleinern kann (zum Beispiel auf 2 Pixel breit) ?
-
Es gäbe da (IMHO) nur die globale Möglichkeit:
SystemParametersInfo mit SPI_SETBORDER, aber wie gesagt, das beeinträchtigt das gesamte System.