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
[40517] Re:[질문]chm 헬프 파일 만든것에서요 호출시에 원하는 페이지로 바로갈수 있도록 하고싶습니다!!
alex [] 831 읽음    2005-06-13 06:16
초난감 님이 쓰신 글 :
: 도움말파일은 만들었구요
:
: 예를들어 1, 2, 3, 4 페이지를 만들었다 치구
:
: 1번프로그램에서 도움말 실행하면 1페이지
: 2번프로그램에서 도움말 실행하면 2페이지
: 3번프로그램에서 도움말 실행하면 3페이지
: 4번프로그램에서 도움말 실행하면 4페이지
:
: 로 바로 갈수있도록 링크를 걸고싶은데요
:
: 여기에서 막혀버렸거든요
:
: 계속봐도 잘 모르겠고
:
: C++빌더내에서 적용시킬수 있는 방법좀 알려주시면 너무 감사할거 같습니다
:
: 도와주세욧!!

This is what i'm doing to disply help file.
Don't forget to set, chm file should have this functionality as well.  

//in main form
  THelp *pHelp = THelp::Instance();
    if (pHelp)
    {
        int iIndex = IDE_PAGE_1 ;//get map id number form chm file
        pHelp->ShowContextHelp(GetDesktopWindow(),HH_HELP_CONTEXT, iIndex );
    }


//header file
typedef HWND (WINAPI *FPHH) (HWND, LPCSTR, UINT,DWORD);

class THelp
{
public:
    THelp();
    THelp( const AnsiString sFile );
    ~THelp();

    int                 ShowContextHelp(HWND hWnd, DWORD dwCommand, int iTopic );
    void                SetFileName(AnsiString filename) ;

    static  THelp*      Instance();
private:
    FPHH                m_pHtmlHelp;
    HINSTANCE           m_hInst;
    AnsiString          m_sHelpName;

    bool                m_bInitFalied;
    bool                Initialize();
    static THelp*       m_pHelp;

};

//cpp file
#include <vcl.h>
#pragma hdrstop
#include "htmlhelp.h"

#include "Help.h"

#pragma package(smart_init)

THelp* THelp::m_pHelp = NULL;
//---------------------------------------------------------------------------
THelp::THelp( )
  :m_bInitFalied(false)
{
    Initialize( );
}
//---------------------------------------------------------------------------
THelp::THelp( const AnsiString sFile )
  :m_bInitFalied(false)
  , m_sHelpName(sFile)
{
    Initialize( );
}
//---------------------------------------------------------------------------
THelp::~THelp()
{
    if ( m_hInst )
        ::FreeLibrary(m_hInst);
}
//---------------------------------------------------------------------------
bool THelp::Initialize( )
{
    m_bInitFalied = true;
    m_hInst =  LoadLibrary("HHCTRL.OCX");
    if ( NULL == m_hInst )
        return false;

    m_pHtmlHelp = (FPHH)::GetProcAddress(m_hInst,"HtmlHelpA");
    if ( m_pHtmlHelp == NULL )
    {
        ::FreeLibrary(m_hInst);
        m_hInst = NULL;
        return false;
    }

    m_bInitFalied = false;
    return true;
}
//---------------------------------------------------------------------------
int THelp::ShowContextHelp(HWND hWnd,DWORD dwCommand, int iTopic )
{
    if ( m_bInitFalied )
        return -1;

    if ( (m_hInst == NULL || m_pHtmlHelp == NULL) && !Initialize() )
        return -1;

    m_pHtmlHelp(hWnd,m_sHelpName.c_str(), dwCommand/*HH_HELP_CONTEXT*/,iTopic);
    return 0;
}
//---------------------------------------------------------------------------
void THelp::SetFileName(AnsiString filename)
{
    m_sHelpName = filename;
}
//---------------------------------------------------------------------------
THelp*     THelp::Instance()
{
    if (m_pHelp == NULL)
    {
        m_pHelp = new THelp();
    }
    return m_pHelp;
}

+ -

관련 글 리스트
40514 [질문]chm 헬프 파일 만든것에서요 호출시에 원하는 페이지로 바로갈수 있도록 하고싶습니다!! 초난감 900 2005/06/12
40517     Re:[질문]chm 헬프 파일 만든것에서요 호출시에 원하는 페이지로 바로갈수 있도록 하고싶습니다!! alex 831 2005/06/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.