大家好,我在MFC中调用帮助文件,可以打开文件,但是不知如何跳转到指定的帮助文件页面。LPCWSTR Filename=_T("ADO210.CHM");
LPCWSTR Operaton=_T("open");
::ShellExecute(m_hWnd,Operaton,Filename,NULL,NULL,SW_SHOWMAXIMIZED); 

解决方案 »

  1.   

    BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) 
    {
        if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_F1) 
        {
            /*
             * 打开帮助文档并定位到指定页面
             */
    CString strPageName;
            strPageName = "test_page1"; //指定页面的名称
    CString strUrl;
    PROCESS_INFORMATION pi;
    ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));
    STARTUPINFO si;
    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si); strUrl = _T("hh.exe \"mk:@MSITStore:.\\ADO210.CHM::/");
    strUrl += strPageName;
    strUrl += _T(".htm\""); USES_CONVERSION; 
    LPWSTR pwStr=new wchar_t[strUrl.GetLength()+1]; 
    wcscpy(pwStr,T2W((LPTSTR)(LPCTSTR)strUrl));  if( !CreateProcess(NULL,
    pwStr,
    NULL,
    NULL,
    FALSE,
    CREATE_NO_WINDOW,
    NULL,
    NULL,
    &si,
    &pi ))
    { }
    else
    {
    CloseHandle(pi.hThread);
    }
            return TRUE;
        }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   


    BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) 
    {
        if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_F1) 
        {
            /*
             * 打开帮助文档并定位到指定页面
             */
     CString strPageName;
            strPageName = "test_page1"; //指定页面的名称
    CString strUrl;
    PROCESS_INFORMATION pi;
    ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));
    STARTUPINFO si;
    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si); strUrl = _T("hh.exe \"mk:@MSITStore:.\\ADO210.CHM::/");
    strUrl += strPageName;
    strUrl += _T(".htm\""); USES_CONVERSION; 
    LPWSTR pwStr=new wchar_t[strUrl.GetLength()+1]; 
    wcscpy(pwStr,T2W((LPTSTR)(LPCTSTR)strUrl));  if( !CreateProcess(NULL,
    pwStr,
    NULL,
    NULL,
    FALSE,
    CREATE_NO_WINDOW,
    NULL,
    NULL,
    &si,
    &pi ))
    { }
    else
    {
    CloseHandle(pi.hThread);
    }
            return TRUE;
        }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  3.   

    用这个代码解决了!CString helpFile=_T("ADO210.CHM::/htm/mdmscadoobjmod.htm");
    ::HtmlHelp(GetSafeHwnd(),(LPCWSTR)helpFile, HH_DISPLAY_TOPIC,0); 
      

  4.   

    第二种方式LPCWSTR Filename=_T("hh.exe");
    LPCWSTR Operaton=_T("OPEN");
    LPCWSTR  Parameters=_T("mk:@MSITStore:d:HtmlHelp.chm::/ch06.html");::ShellExecute(m_hWnd,Operaton,Filename,Parameters,NULL,SW_SHOWMAXIMIZED); 
      

  5.   

    还得在加上好下代码:
    #include "htmlhelp.h" 
    #pragma   comment(lib,"htmlhelp.lib") 把X:\Program Files\HTML Help Workshop\lib\htmlhelp.lib拷贝到源码目录下。