C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[65616] Re:폼 프린트시 콤보박스 선택 내용 미출력 문제
장성호 [nasilso] 1501 읽음    2011-11-30 11:20
@문제원인
VCL 자체의 GetFormImage 에 문제가 있는듯 합니다.
Form의 Print함수도 내부적으로 GetFormImage를 이용하고 있어서 문제가 있는것이구요

@상세분석1
TComboBox는 화면에 보이는 부분이 두개의 window 입니다.
바깥으 Frame은 VCL의  TComboBox이지만 안에 글자부분은 win32-control인 "EDIT" 입니다.
이는 VCL의 TControl을 상속받은 control이 아니기 때문에 ComboBox의 안쪽 글자 부분이
제대로 Print가 되지 않는것 같습니다.


@ 해결방안

방법1
    ComboBox의 원인을 찾아 GetFormImage의 문제점을 해결하는 방법이 있겠구요

방법2
   그냥 Form의 Client영역만 화면캡쳐하는 방법을 이용하여 캡쳐하는 방법 있을것입니다.
   다음 링크에 두어가지 방법이 나와 있습니다.
   http://stackoverflow.com/questions/3190777/how-do-i-copy-a-form-as-an-image-to-the-clipboard

   2-1 :  GetDC(0) -> BitBlt
   
   2-2 : PrintWindow


@ 비고

    두방법이 모두 똑같지는 않습니다.
   주의1.  GetFormImage는 Form이 화면(모니터,스크린)밖을 벗어나도 캡쳐가 됩니다만
       2-1번 방법은 Form이 스크린 밖으로 나가면 밖으로 나간 부분이 캡쳐가 되지는 않습니다.

   주의2. 또한 작업관리자 같은 다른 TopMost-Window가 Form 보다 앞에 떠 있는경우
             TopMost-Window와 같이 캡쳐됩니다.

   PrintWindow라는 API를 이용하는것이 좀더 좋은데요
   이놈도 전혀 문제가 없는것으 아니구요


그럼..

  

로더 님이 쓰신 글 :
: 안녕하세요. 로더입니다.
:
: 제목 그대로 폼을 프린트 하려는데
:
: 콤보박스에 선택된 내용이 출력 안되는 문제가 발생 되었습니다.
: (기타 다른 컨트롤들(메모, 에디트박스 등)의 내용은 잘 출력이 됩니다.)
:
: 방법은 2가지를 시도해 보았습니다.
:
: 1. 폼의 Priint() 사용 (프린터 선택 문제 발생.)
:
:                 form->PrintScale = poPrintToFit;
:                 form->Print();
:                 ShowMessage("인쇄 완료");
:
: 2. GetFormImage()  사용 (Q&A 게시판 참고)
:
:                 Graphics::TBitmap *FormImage = form->GetFormImage();
:                 if(PrintDialog->Execute())
:                 {
:                         Printer()->BeginDoc();
:                         Printer()->Canvas->Draw((FormImage->Width),
:                                                 (FormImage->Height),
:                                                 FormImage);
:                         Printer()->EndDoc();
:                 }
:                 delete FormImage;
:                 ShowMessage("인쇄 완료");

+ -

관련 글 리스트
65611 폼 프린트시 콤보박스 선택 내용 미출력 문제 로더 1334 2011/11/29
65616     Re:폼 프린트시 콤보박스 선택 내용 미출력 문제 장성호 1501 2011/11/30
65631         Re:Re:폼 프린트시 콤보박스 선택 내용 미출력 문제 __ 해결!! 로더 1367 2011/12/02
65632             Re:Re:Re:폼 프린트시 콤보박스 선택 내용 미출력 문제 __ 해결!! 장성호 1217 2011/12/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.