|
2번째 방법으로
상속은 받았는데 어떻게 쓰는지 모르겠습니다.
장성호 님이 쓰신 글 :
: 저도 전에 잠깐 해보다가 잘 안되어서 덮어두고 있었는데...
: 질문 올라오는것 보고 다시 해봤습니다.
:
: QuickRep 버젼은 정확히 잘 모르겠고 Builder6.0 pro 깔면 기본적으로 설치되는 버젼으로
: Builder6.0에서 테스트 해 봤습니다.
:
:
: [Spy로 정보 획득]
: 먼저 Preview하면 보여지는 폼을 spy로 확인해 보니 ..
:
: 메인프레임 = TQRStandardPreview 였습니다.
: 툴바 = TToolBar
: 보여지는 부분 = TQRPreview
:
: 이었습니다.
:
: 저 ToolBar의 포인터만 찾으면 되는데...
: QuickReport 소소는 없도 hpp밖에 없으니...
: FindWindow로 찾는것은 HWND핸들뿐이구...
:
: [예전에..]
: 예전에 preview폼이 맨처음에 보일때
: Zoom to Width 가 아닌 Zoom to Fit로 보이게 하기 위해서
:
: 1. FindWindow 로 TQRStandardPreview 의 HWND 핸들을 찾고
: 2. 다시 FindWindowEx로 TQRStandardPreview 에서 TToolBar 핸들을 찾은다음
: 3. SendMessage로 WM_LBUTTONDOWN , WM_LBUTTONUP 메세지를 보내 toolbar에서 첫번째 버튼이 클릭되도록 하여서
: 구현한적이 있습니다.
:
:
: [해결 방법]
:
: 방법1.
: ; 아이디어 입니다.
: FindWindow , FindWindowEx 로 ToolBar 핸들을 찾은다음 WindowProc를 바꿔서 서브클래싱으로
: WM_LBUTTONDOWN , WM_LBUTTONUP 메세지를 보고.. LPARAM으로 들어오는 마우스 좌표를 보고 print부분이면
: return해버리는 방식으로 구현 가능할것 같습니다.
:
:
: 방법2.
: ; 퀵리포트 해더파일( *.hpp)을 보다보니까..
: QRPrntr.hpp 의 TQRPrinter 클래스에 보니까
: PreviewControl라는게 private 멤버로 있더군요
:
: 그래서 FindWindow로 찾은 TQRStandardPreview 의 핸들과
: PreviewControl의 Handle을 비교해 봤습니다.
:
: 결론은 같았습니다. ===> 앗싸
:
: 자 이제 TQRStandardPreview 를 찾았으니
: TQRStandardPreview 에서 TToolBar * 를 찾는것은 금방이겠죠
:
: TToolBar를 찾았으면 ToolBar의 12번째 TToolButton을 Visible=false 시키면 깔끔하더군요
: Enabled=false 해도 되구
: ToolBar->Buttons[11]->Visible=false;
:
: 저도 이기능이 필요했는데...
: 질문덕택에 해결했네요
:
: [참고사항]
:
: 1. PreviewControl 은 TQRPrinter 클래스의 private 멤버인데
: class의 private멤버 access하는 방법은 팁&트릭 게시판에 있습니다. 참고하시구요
:
:
: 2. Preview 또는 PreviewModal등이 호출되기 전에는
: TQuickPre 의 Printer 가 없다는것이 중요합니다.
:
: Preview 가 호출된 직후에
: 위 방법1,방법2의 작업을 해줘야 합니다.
:
: 요건 쓰레드 , 타이머, 포스트메세지 등의 방법이 있겠네요
:
: 그럼..
:
:
: 암흑사제 님이 쓰신 글 :
: : QReport의 미리보기에서 프린트하는 것을 막을 려고 합니다.
: : 어떻게 해야 하나요?
|