내가합니다 (BiDiMode
이 bdLeftToRight
될 때처럼) 왼쪽 방향 오른쪽 Explorer::Treeview
클래스의 ttGlyphClosed
요소를 그릴 노력하고있어. 나는 오프 스크린 비트 맵을 투명하게 만드는 방법을 모른다는 문제가있다. 비트 맵의 배경은 항상 흰색입니다. 내가 이미지를 미러링하려면 다음 코드를 사용하고방법 (RTL) 방향을 오른쪽에서 왼쪽으로의 소자 부분을 그리는?
:
procedure TForm5.FormPaint(Sender: TObject);
var
bm: TBitmap;
ARect: TRect;
Details: TThemedElementDetails;
begin
if ExplorerTreeviewhTheme = 0 then
ExplorerTreeviewhTheme := OpenThemeData(0, 'Explorer::Treeview');
ARect := Rect(20, 20, 40, 40);
Details := ThemeServices.GetElementDetails(ttGlyphClosed);
DrawThemeBackground(ExplorerTreeviewhTheme, Canvas.Handle,
Details.Part, Details.State, ARect, nil); //Ok
bm := TBitmap.Create;
try
bm.Width := 20;
bm.Height := 20;
ARect := Rect(00, 00, 20, 20);
DrawThemeBackground(ExplorerTreeviewhTheme, bm.Canvas.Handle,
Details.Part, Details.State, ARect, nil);
// rendered result has white background
Canvas.Draw(60, 10, bm);
// rendered result is mirrored but has also white background
StretchBlt(Canvas.Handle, 100, 10, -20, 20, bm.Canvas.Handle, 0, 0, 20, 20, SRCCOPY);
finally
bm.Free;
end;
end;
질문 오른쪽 ((RTL 읽기 용) DrawThemeBackground
기능에 의해 그려진 요소를 반영하는 방법 또는 RTL이 기능을 사용하는 방법입니다 왼쪽으로) 렌더링?