返回首页


{S0}CHHCtrl是一​​个MFC类,设计一个嵌入式的帮助窗口内放置一个对话框,属性表,或窗口。 CHHCtrl类主机shdocvw而不是直接使用HTMLHELP API。这绕过发布版本的HTML帮助引入的错误在嵌入式帮助Visual Studio的6。它还使您可以访问所有IWebBrowser方法,这意味着你可以改变HTML文件上的苍蝇 - 例如,在实际键关联效应,目前而一个程序,则默认设置它附带。
该项目还包括一个CItsFile类阅读从一个CHM(或任何文件,您可以使用ITS)文件。它是利用convertting的URL映射到IDS CHHCtrl类,但你可以使用阅读CHM文件存储任何类型的数据。
由于添加到MFC CHHCtrl依靠,这个项目需要Visual Studio 6。您可能会能够将它移植到Visual Studio的早期版本,但预计相当数量的工作。
zip文件中包含其他信息(chhctrl.htm),包括如何添加到您的项目CHHCtrl,文件的其他功能,CHHCtrl提供。

回答

评论会员:霍尔格法尔 时间:2011/11/18
当我建立的演示程序,使用Visual Studio 2005中,我得到一个文件occcont.cpp的断言:950(ASSERT(IsWindow(pTemp - GT; m_hWnd ));).当忽略断言一切正常,但我得到一些内存泄漏。任何提示,我怎么能解决这个问题?
评论会员:kishoresoftware 时间:2011/11/18
您好,
 60; 你找到任何解决这个问题呢?


阿迪
评论会员:霍尔格法尔 时间:2011/11/18
您好,

不幸的是,我没有找到一个解决办法,问题仍然存在在VS2008。 (OK,我不得不承认,我并没有太多的搜索。)我在我的应用程序删除CHHCtrl控制和开关控制,转换HTML到RTF(http://www.viksoe.dk/code/simplehtmlviewer。
HTM []),我的需要很好。细则
 60; 霍尔格{BR​​}
评论会员:feelapi 时间:2011/11/18
在VS2008 SP1,我修复替换函数的代码

BOOL CHHCtrl:ReplaceControl(的CWnd * pDlg,UINT idCtrl,DWORD dwBtns,LPCTSTR pszHomeURL,BOOL fBtnText)
第四行代码:pDlg - GT; GetDlgItem(idCtrl)GT; DestroyWindow() pDlg - GT; GetDlgItem(idCtrl)- GT的ShowWindow(SW_HIDE);
评论会员:钨Steinke 时间:2011/11/18
如何能禁用的下降,特别是使用IWebBrowser2的控制。我使用的地方,它是不恰当的,能够放到一个文件。 Allowfiles设置为false,似乎无法正常工作。
任何建议,将不胜感激。


快乐编程
评论会员:!snowlin 时间:2011/11/18
您好,

我开始从另一个局域网中的PC我的应用程序,然后当我尝试HTMLHELP推出的应用程序,帮助窗口显示,但没有内容。这似乎是。chm文件,发现在它编译的。htm页的问题。
有没有办法解决这个问题?


评论会员:samson_duan 时间:2011/11/18
这是一个万年前的老问题似乎并不已答复。如果你是像我这样的文章周围转悠的人,想知道这个海报问题的解决方案,也许我可以帮

如果他描述的是这样的:一个chm文件已打开另一台计算机上,它被复制从LAN甚至通过电子邮件发送给您(或其他方法)不显示内容。实际上,它可能会出现这样的网站的类型错误"此页无法显示..内容十分重要。"

一个适用于Windows XP ®的安全性更新可能会阻止访问CHM文件
的Windows XP ®安全更新块CHM文件中的积极内容,以保护您的系统安全。更多信息可以在这里找到。

解决方案:运行Windows资源管理器,右键点击CHM文件,并从弹出菜单中选择属性。点击下方的"常规"页上的"高级"按钮解除封锁按钮。点击Apply来显示内容。一旦CHM文件已经畅通,解除封锁"按钮消失。

CHM文件是在禁区Internet区域
当您试图访问一个CHM文件是远程存储,例如:网络驱动器上或在远程服务器上,您也可能会遇到麻烦。如果相关的安全区域的限制,然后CHM文件将不会被显示,以及

解决方案:请去{A3}]细节
我已经列出了两个错误最常见的原因,但该网站介绍了几个和他们的解决方案。
我希望这可以帮助别人。

S. Nowlin
-----------------------{ BR}我一个Techwriter猴子 - 方便,只需不到浴室猴子
有用
评论会员:。拉维Bhavnani 时间:2011/11/18
您好,
如果缺少[图] CHM文件中的部分,怎样才能显示CHM使用CHHCtrlclass?

提前THX {S1}
评论会员:ladydi99 时间:2011/11/18
这就是所谓的文章呢?
评论会员:拉尔夫华登国 时间:2011/11/18
你有建设性的意见,或者是你只是一个糟糕的一天?


我的新的一年的分辨率:2048 × 1536
{A4}
ravib@ravib.com
评论会员:阿图尔阿罗拉 时间:2011/11/18
嗨,
我只是想上运行Windows 98的样本。它没有在那里工作。它无法在CreateControl(CLSID_WebBrowser,空,...).

任何一个想法,为什么呢?

一个解决方案将是巨大的的!

提前THX
评论会员:snowlin 时间:2011/11/18
你运行的exe是包含在zip文件中,或者是它运行后,你已经建立了它的程序问题。
评论会员:azghar 时间:2011/11/18
我做了一个重建(VC 7)后,它没有工作。我没有在Windows 98机器有CreateControl返回0的远程调试。

安装最新的IE。 ,共同控制的日期以及
评论会员:拉尔夫华登国 时间:2011/11/18
有没有人一个想法为什么这个例子并不{S2}工作为Windows 98(以及Windows NT 4.0)

预先感谢。
评论会员:lvershum 时间:2011/11/18
您必须添加CoInitialize的(NULL);你的代码。
评论会员:拉尔夫华登国 时间:2011/11/18
您好,
v准备一种形式是存在的。
该表格​​包含几个控制(如文本框,复选框,..​​){ BR}最前一页转换到XML文件。这个总是avilable ....{ BR}
但我想从XML中读取数据,创建HTML控制浏览器。
如果comobox包含多个值比,V可以使每个值复选框....{ BR}
用途:
v准备一种形式。如果打印输出,形成比它会显示只有一个comobox价值。 v在comobox需要的所有价值。
主要目的,是一种形式ü打印输出比,其写一本手册的数据..........{ BR}
如果任何人知道这一个请帮我.......... thenkathir@rediffmail.com

我已经给samble XML代码........{ BR}
文本框
<标题> LABEL1 LT / TITLE>
labelValue
100,20
100,10
标签
<标题> Label2的LT / TITLE>
labelValue
100,20
100,50
ComboBox中
<标题> combo1lt; / TITLE>
combotext,值2,值3,value4,value4 ......{ BR}100,20
100130
按钮
<标题> button1lt; / TITLE>
buttontext
100,20
100160

私人无效Form1_Load的(对象发件人,发送System.EventArgs)
{
的XmlDocument xmlDoc中新的XmlDocument();
XmlNode的XMLNode的;
StringBuilder的SB =新的StringBuilder()
xmlDoc.Load("D:/ sample.xml");
(xmlDoc.HasChildNodes)
{/ /打开HTML
sb.Append(" <形式>");{ BR}
&# 160;
/ /第一个
的xmlNode = xmlDoc.SelectSingleNode("/ / DataItem的[控制='""文本","'] /名称");
xmlNode.InnerText字符串SNAME =

的xmlNode = xmlDoc.SelectSingleNode("/ / DataItem的[控制='","文本","'] /高度");
xmlNode.InnerText字符串theight =

的xmlNode = xmlDoc.SelectSingleNode("/ / DataItem的[控制='""文本","'] /宽度")
xmlNode.InnerText字符串twidth =

sb.Append("");{ BR}
/ /第二个
的xmlNode = xmlDoc.SelectSingleNode("/ / DataItem的[控制='","复选框","'] /名称")
xmlNode.InnerText字符串ssName =

的xmlNode = xmlDoc.SelectSingleNode("/ / DataItem的[控制='","复选框""'] /宽度")
xmlNode.InnerText字符串lwidth =

的xmlNode = xmlDoc.SelectSingleNode("/ / DataItem的[控制='","复选框","'] /高度")
xmlNode.InnerText字符串lheight =

的xmlNode = xmlDoc.SelectSingleNode("/ / DataItem的[控制='","复选框""'] /值")
字符串左值= xmlNode.InnerText;

/ /字符串的左值= NULL;

sb.Append("<输入类型="复选框","名称="ssName"宽度="lwidth"高度="lheight"名称="左值">");{ BR}
/ /关闭HTML
sb.Append(" ");{ BR} / / / /创建HTML文件/ /
(SB!= NULL)
{
FileInfo的fiFile =新的FileInfo(将Application.StartupPath @"\ CDCPRINTSAMPLE.HTML");
(fiFile.Exists)
{
fiFile.Delete()
}

的FileStream FS =新的FILESTREAM(将Application.StartupPath @"\ CDCPRINTSAMPLE.HTML",FileMode.Create,FileAccess.Write,FileShare.None);
StreamWriter的SW =新的StreamWriter(FS);
sw.WriteLine(sb.ToString())
sw.Close()
fs.Close();

/ /加载的页面在指定的网址,在网页浏览器
axWebBrowser1.Navigate(将Application.StartupPath @"\ CDCPRINTSample.HTML",文献cobjGeneral,文献cobjGeneral,文献cobjGeneral,文献cobjGeneral);
返回

}
}
}
}
}


评论会员:ssbktSean 时间:2011/11/18
我不能够打开CHM文件,如果有一个"#"文件的路径,例如。 C:\ AA#BB \ abc.chm。请告诉我该怎么做。
Thanx提前
阿图尔