CreateRoundRectRgn() ...
-
ich erstelle ein par buttons in der titelleiste. das geschieht ohne probleme.
jetzt habe ich die buttons bisher rechteckig gezeichnet, jetzt möchte ich sie aber an den ecken abrunden. ich habe es so getestet:
So klappt es (mit ecken):
HRGN hTemprgn; hTemprgn = CreateRectRgnIndirect(&rCtrl); CombineRgn(hRegion, hRegion, hTemprgn, RGN_XOR);(hRegion und rCtrl wurden definiert und sind auch einsatzbereit.)
jetzt dachte ich mir das ich zum abrunden der kanten folgendes machen muss:
hTemprgn = CreateRoundRectRgn(rCtrl.left, rCtrl.top, rCtrl.right, rCtrl.bottom, 3, 3)theoretisch müsste jetzt die titelleiste mit dem ausgeschnittenen loch (ecken ausgenommen) gezeichnet werden.
jetzt flimmern meine buttons aber bei größenveränderung des fensters, was bedeutet, das das loch falsch ausgeschnitten wurde.
mache ich das mit 'CreateRoundRectRgn()' falsch ?
CreateRoundRectRgn() ...
-
hat niemand ne idee ??
oder anders ausgedrückt, wo ist der unterschied zwischen
hTemprgn = CreateRectRgnIndirect(&rCtrl);und
hTemprgn = CreateRoundRectRgn(rCtrl.left, rCtrl.top, rCtrl.right, rCtrl.bottom, 3, 3)??
es sollte doch das gleiche dabei herauskommen, nur das die ecken im zweiten code abgerundet sind