C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[6430] CHM Help를 쓰기 위하야...
김상구.패패루 [peperu] 1199 읽음    2002-12-28 12:23
음.. 다들 아시다시피 C++ Builder 의 도움말 시스템은 구형 hlp방식이죠.
CHM을 쓰려면 HtmlHelp를 호출해야 하는데 HtmlHelp.lib를 임포트해 와야 하고.. 여러모로 귀찮은게 많습니다. 갑자기 이번에 만드는 플그램에서는 chm으로 해 봐야겠다는 생각이 들어서 자료들을 찾다보니 누군가 Application.OnHelp를 가로채서 아주 쌈박하게 풀어 놓은 코드가 있더군요.
대충의 작동원리는 중간에 명령을 번역하는 방식입니다.
그냥 프로젝트에 포함만 시키면 되도록 해서 기존의 HelpFile, HelpContext, HelpKeyword를 모두 지원하게 해 놓은거죠.

문제는 Pascal소스를 제가 C++로 바꿔서 테스트를 해 봤더니만.. 안되더라는 것이죠.
또다시 찾아보니.. 글쎄.. Delphi6, C++Builder6로 넘어오면서 Help시스템에 변화가 있었다는군요. CLX와의 호환성 때문이라나.. 아무튼 다이렉트호출로 인해 OnHelp가 동작하지 않게 변경되었다는군요. ㅠ ㅠ

유일한 방법은 WM_HELP를 가로채는 방법이라는군요.

쪼끔만 고쳐서 편하게 Help좀 쓸라구 했더니만.. 우쒸..
결국 지금은 Forms.pas에서 WMHelp 함수 소스를 보고 있슴다. LPARAM, WPARAM 분리하는걸로 간단하게 끝나지 않는군요. 어케 컴포넌트로 만들어 놓으면 아주 편리하게 쓸 수 있을 것 같은데.. 메시지를 어디서 가로챌지 아직 결정하지 못하고 있습니다.
컴포넌트로 만들지도 아직 결정을 못했고..

메시지멥을 쓰면 간단하긴 한데 매번 이런 삽질하는것도 귀찮고.. 컴포넌트 형태로 구현해서 폼의 WndProc를 가로챌지.. 음.. 어떤 방법이 좋을지 모르겠네요.

나날이 귀차니즘에 빠지고 있는 패패루였슴다.. -_-

+ -

관련 글 리스트
6430 CHM Help를 쓰기 위하야... 김상구.패패루 1199 2002/12/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.