3470|5

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请问大家mobile中使用HtmlCtrl如何响应NM_HOTSPOT消息 [复制链接]

我重载了WindowProc(UINT message, WPARAM wParam, LPARAM lParam)函数,想在点击HtmlCtrl中的链接时响应NM_HOTSPOT消息,然后进行一些处理,但是现在我在HtmlCtrl上点击链接的时候,并不会响应这个消息,确切的说是不管我在什么位置点击,都不会进入到WindowProc这个函数里面去响应任何消息,请问可能是什么原因造成的
LRESULT CHTMLDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
        switch(message)
        {
        case WM_NOTIFY:
                {
                        WCHAR wszURL[100] = {0};
                        NM_HTMLVIEW* pnmHTMLView = (NM_HTMLVIEW*)lParam;
                        switch (pnmHTMLView->hdr.code)
                        {
                        case NM_HOTSPOT:
                                //我的一些处理
                                break;
                        case NM_DOCUMENTCOMPLETE:
                                break;
                        case NM_INLINE_IMAGE:
。。。。。。

最新回复

至于那个显示图片不对的问题,应当也是发错窗口了,你要是想用HtmlView打开一个网页,得把消息发给A窗口,SendMessage(A, DTM_NAVIGATE, 0, (LPARAM)L"navigate.htm");不知道你遇到的是不是这个问题。  详情 回复 发表于 2008-10-20 12:49
点赞 关注

回复
举报

63

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
是不是我重载的方法不对?VC.NET里面应该如何重载这个函数
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
什么是vc.net?

能否说明一下如何重载WindowProc的?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(中级)

4
 
vc.net就是在.net环境下使用VC++(我比较懒,简写了,呵呵)
我重载这个函数的方式就是在头文件中声明
protected:
        virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
然后在cpp文件中实现:

但是在点击htmlctrl中的链接时,并不会响应任何消息。不知道是不是因为WTL里面是不能重载这个函数的(我刚刚开始使用WTL,还完全不了解怎么用呢>_<)/我现在没有重载这个函数了,而是手动添加了WM_NOTIFY的消息映射,现在点击链接的时候倒是可以响应这个消息并进行处理的,但是又产生了新的问题,原来我在屏幕上长点的时候,会自动跳出htmlctrl默认的那个上下文的菜单,但是现在那个菜单不出来了,我并不想屏蔽掉那个菜单,请问该如何做?
还有,我原来没有用WM_NOTIFY的消息映射时,通过::SendMessage(hwndHTML, DTM_ADDTEXTW,FALSE,(LPARAM)_T(""));就可以直接在HtmlCtrl中显示图片,但是现在这个图片怎么也显示不出来了,请问是为什么?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
应当是窗口的消息处理不对,我遇到过这样的问题,比如你CreateWindow一个A窗口,用A载入了一个网页,即你的HtmlView,这时候在A里面会自动的再创建出一个窗口来,就叫B吧,然后那些个WM_NOTIFY直接发给了B,你的A窗口是拿不到的,我一开始也是有点晕,后来拿Spy看了一眼,才发现是这样子的,不知道你的问题是不是和我的一样。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
至于那个显示图片不对的问题,应当也是发错窗口了,你要是想用HtmlView打开一个网页,得把消息发给A窗口,SendMessage(A, DTM_NAVIGATE, 0, (LPARAM)L"navigate.htm");不知道你遇到的是不是这个问题。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表