资源整合: 从托盘弹出Html消息提示框

本文介绍了一款用于显示HTML格式静态文本的控件开发过程,解决了文本显示、滚动及HTML解析等问题,并提供了完整的实现方案。

需求:

  在托盘弹出消息提示框, 提示框中的内容是html的文本流显示的页面内容.

  此功能是个组件化的功能,为了被别的exe整合, 应该做成ocx.

 

稍后整合应用.

 

<2010_1016_2013>

1. 把功能封在了一个控件内, 提供给调用者的接口完成. 接口名称不易读, 稍后修正.

2. 调用控件的测试程序完成.

3. 托盘图标的增加,修改,删除,动画显示完成.

4. html信息提示框的创建,删除,显示,隐藏,动画缩放显示完成.(这个Dialog还是个空的, 显示html信息的代码下一步完成)

 

显示html文本的效果, 参考以下demo. 效果很棒, 需要把功能扒出来.

http://www.codeproject.com/KB/miscctrl/pptooltip.aspx

 

从上面的线索又找到了最贴切的一个效果:

http://www.codeproject.com/KB/static/pphtmlstatic.aspx

 

我们就迁入这个效果到工程.

 

迁移完成. 经过测试, 简单的html文本可以显示. 稍长些的文本无法正常显示, 估计是html分析的有问题,导致ChtmlStatic死在分析里面了.

而且实际的html语法匹配的不是很全, 这样会导致ChtmlStatic崩溃错误. 等调试完了, 只能和调用者约定好,传简单的html文本流进来.

 

如果有个好的html语法分析器,容错强些的就能解决这个问题。

 

测试结果:

1. 对表格支持的不好, <tr>必须对应</tr>, 不加</tr>会死掉, 因为字符串搜索时出现了问题.

2. 输入格式不自由,html格式符号必须严格匹配, 每行之间不能有回车和多余空格, 必须由调用者来保证.

3. 不支持滚动查看方式.

4.显示的html文本流里面有中文时, 要去掉所有多余的回车,前导/t, 前导空格, 尾巴上的空格,  形成一行的输入.才能正确显示.

   实际应用中,需要写一个过滤函数做这个工作.

 

效果图

实际应用时,要改善弹出消息对话框的显示效果(背景位图; 位图按钮; CHtmlStatic显示时的效果,  要做很多实验, 有很多参数可以设置), 现在的效果还比较丑.

 

输入的html文本流

 

CHtmlStatic控件支持css样式, 我在代码中写死了. 实际应用中是由美工来确定css样式文件, 由应用程序读回并设置.

 

工程下载点:

http://download.youkuaiyun.com/source/2763602

 

<2010/10/18>

解决CHtmlStatic滚动的问题,思路如下.

 

1. 在消息弹出Dialog中建立view(Score View), codeguru上有个线索.

http://www.codeguru.com/Cpp/W-D/dislog/article.php/c5007

 

2. 在view中动态的创建CHtmlStatic, CHtmlStatic有方法可调用,显示全部的Html的Static图像.

这时调整view的size, 因为view的窗口比图像小了,所以滚动条很容易就出来.

 

<2010/10/18 17:39>

可以考虑改成用xtreme界面库, 手头版本xtreme V13

<<MarkupSample files>>中对话框中也有HtmlStatic的效果.

<<Notifications files>>的弹出窗口效果好很多.

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值