Vielen Dank für die Hinweise. Ich habs dann wie von Himitsu vorgeschlagen gemacht.
CombineRgn
hieß das Zauberwort, um zwei Regions miteinander zu verbinden. Rgn1 wird dadurch um Rgn2 erweitert und ergibt die gewünschte Form.
Falls mal jemand das gleiche Problem hat, hier mein Code:
Delphi-Quellcode:
procedure TTipPanel.RecreateHRGN;
const radius = 20;
var
Rgn1, Rgn2: hRgn;
pList :
array of TPoint;
begin
//zuerst die Grundform mit gerundeten Ecken
Rgn1 := CreateRoundRectRgn(0,30,200,100,radius,radius);
//danach den Pfeil auf die obere Kante
SetLength(pList,3);
pList[0] := Point(30,30);
pList[1] := Point(30,0);
pList[2] := Point(60,30);
Rgn2 := CreatePolygonRgn(plist[0],High(pList)+1,Winding);
CombineRgn(Rgn1,Rgn1,Rgn2,RGN_OR);
SetWindowRgn(
Handle, Rgn1, True);
end;
Vielen Dank für die Hilfe.