5251|13

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

上网iesimple提问 [复制链接]

我在网上看到有人写CE的浏览器程序时,他的代码为:

extern "C" DWORD __stdcall SetProcPermissions(DWORD);
extern "C" DWORD __stdcall GetCurrentPermissions();


CWnd *pWnd = NULL;
HWND hWnd;

hWnd = ::FindWindow(NULL, _T("\\HardDisk\\HiServer\\index.html"));
if(!hWnd)
{
    AfxMessageBox( _T("FindWindow 失败") );
    return;
}

pWnd = (CWnd*)GetWindowLong(hWnd, GWL_WNDPROC);
pWnd->pBrowsr->Navigate2(_T("www.sohu.com"), NULL, NULL, NULL, NULL);

SetProcPermissions(dwCp);
请问,为什么我用的时候就出现问题:‘pBrowser' : is not a member of 'CWnd'啊?
是不是我忘记添加什么头文件了啊?

最新回复

原来如此。我再看看。谢谢!!!  详情 回复 发表于 2008-10-9 11:30
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
意思是你的pWnd里没有pBrowser这个成员。

你的pWnd是CWnd类型的?

是不是需要转换成你自己的窗口类型!!!
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我也知道应该要转换一下窗口类型或怎么着,但是就不知道怎么转。因为看到网上的代码就是这么写的,发布者也没有说报错。所以很奇怪,不知道有谁比较了解iesimple的,知道我在哪里缺少了什么呢?还是在哪里应该再加头文件什么的。请指教,谢谢!!!
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

4
 
需要SetWindowLong()进行设置,否则GetWindowLong()的值从哪里来的?

LZ去仔细看看GetWindowLong()与SetWindowLong()的用法,需要有自定义的数据结构支持。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
网上的资料,也只能先信一半
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

6
 
为什么要SetWindowLong呢?我前面不是有“hWnd = ::FindWindow(NULL, _T("\\HardDisk\\HiServer\\index.html"));”用来获得所需要的窗口了吗?这个窗口已经存在和打开了,为什么还要用SetWindowLong呢?
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

7
 
GetWindowLong(hWnd, GWL_WNDPROC);

这个得到的是窗口处理函数的地址啊,能转换成cwnd指针吗?

还真没这么用过。

什么代码啊??
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

8
 
pBrowsr是自定义的,不是CWnd默认的成员。

需要自定义的数据结构支持,SetWindowLong()可以实现此功能,但是参数要用GWL_USERDATA。
然后用GetWindowLong()得到SetWindowLong()设置的数据结构。

唉...,不知道LZ的程序究竟要做什么!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

9
 
To 91program :
我现在要做的只是能够让已经打开的页面(上网)转到制定的页面(譬如:www.sohu.com)。
void CBrowserDlgDlg::OnButton1()
{
        // TODO: Add your control notification handler code here
        CWnd *pWnd = NULL;
        HWND hWnd;

        hWnd = ::FindWindow(NULL, _T("index"));///index.html是已经打开的网页
        if(!hWnd)
        {
                AfxMessageBox( _T("FindWindow 失败") );
                return;
        }

        pWnd = (CWnd*)GetWindowLong(hWnd, GWL_WNDPROC);

        GetCurrentPermissions();
        SetProcPermissions(0xFFFFFFFF);

        pWnd = (CWnd*)GetWindowLong(hWnd, GWL_WNDPROC);
        pWnd->pBrowsr->Navigate2(_T("www.sohu.com"), NULL, NULL, NULL, NULL); //让网页连接到www.sohu.com

        SetProcPermissions(dwCp);
               
}
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

10
 
因此,请教91program怎么个自定义数据结构法?能够使用pBrowsr->Navigate2方法来上网。非常感谢!!!
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

11
 
pBrowsr 是如何来的?
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

12
 
To 91program :
照道应该是IWebBrowser2 *pBrowsr;这么来的,但是网上的源程序中没有写到,直接就 pWnd->pBrowsr->Navigate2了。所以我不清楚他是怎么实现的。现在既然看见了您说的“需要自定义的数据结构支持,SetWindowLong()可以实现此功能”,所以想看看怎么才能实现上网。谢谢!!!
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

13
 
上面的代码中并没有包括对WebBrowser控件的容器,用pBrowser自然是不行了。
把这个控件加进去,再用Navigate就可以了。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

14
 
原来如此。我再看看。谢谢!!!
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表