종일 헤매고 있습니다.
프로그램개발중 폼의 특정 판넬위의 모든 내용을 있는그대로 출력하려고
PaintTo메소드를 통해 bmp로 캡쳐하여 인쇄하였습니다.
잘 작동하는 줄 알고 흐뭇해 하다가 오늘 버그를 발견했습니다.
콤보박스의 style에 따라 콤보박스의 텍스트(text)가 인쇄되기도 안되기도 하네요
즉 판넬(Panel)위의 모든 컨트롤을 PaintTo메소드를 통해 인쇄시
콤보박스의 style이 csDropdownList일때는 인쇄되는데 csDropdown일때는 인쇄가
되지 않더군요
검색해보니 vcl의 버그인것 까지는 알겠되었습니다.
결국 해결방법이 문제인데
알고 계신분 도와주시길 부탁드립니다.
그런데 일반적으로 화면 갭쳐시 PaintTo등의 단순한 함수보다도 요구(크기/테두리/색상등)가 많아서 다른 API들을 많이 사용하실겁니다.
예로 윈도우나 그래픽의 API를 많이 사용합니다
<!--CodeS-->
var
f_DC: HDC;
begin
f_DC := GetDC(Panel1.Handle);
BitBlt( Image1.Canvas.Handle, 0, 0, Panel1.Width, Panel1.Height, f_DC, 0, 0, SRCCOPY );
ReleaseDC(Panel1.Handle, f_DC);
end;
<!--CodeE-->