WebKit内核嵌入到MFC程序

转自gaozan198912的博客

http://blog.csdn.net/gaozan198912/article/details/8572002

源码下载地址 http://download.csdn.net/detail/gaozan198912/5054818

—————————————————————————————————————————————————

          辛辛苦苦编译的好的WebKit(较新版本R12****以后的,内涵MiniBrowser工程的)该如何使用呢!?把WebKit工程里的MiniBrowser给剥了,提取里面的BrowserView,然后嵌入到MFC程序中

          具体步骤

           1)新建MFC工程,不要选择基于对话框的工程,对话框工程会过滤掉WM_KEY****相关的消息,后果就是你在百度的搜索栏里没办法输入英文字母,剪切粘贴等操作没有影响

           2)把MiniBrowser工程中的BrowserView.h,BrowserView.cpp直接拷贝到你的工程目录下,添加到你的工程中,这两个文件要做适当的修改,

                   1、 #include "BrowserWindow.h"   删掉    

                    2、void BrowserView::create(RECT webViewRect, BrowserWindow* parentWindow)    改成 void BrowserView::create(RECT webViewRect, CWnd* parentWindow)

                   3、 void BrowserView::create(RECT webViewRect, BrowserWindow* parentWindow)   这个函数中的

            m_webView = WKViewCreate(webViewRect, context, 0, parentWindow->window());  改成   m_webView = WKViewCreate(webViewRect, context, 0, parentWindow->m_hWnd);

                  4、createNewPage 这个函数直接返回0,当有新窗口打开后会触发该函数,不过为修改过的MiniBrowser也没办法创建新窗口

                  5、 showPage     直接返回空

                  6、重载APP类的Run函数,修改成

                  

[cpp]  view plain copy
  1. MSG message;  
  2. while (BOOL result = ::GetMessage(&message, 0, 0, 0))   
  3. {  
  4.     ::DispatchMessage(&message);  
  5. }  
  6.   
  7. return 0;  

                 可以不修改,可以试一下,输入一个字符T会变成两个,向上面那么改快捷键就没了,以后再加上吧

          3)文件修改的差不多了,然后就是引入把BrowserView当做单文档View的一个成员变量browserWindow,重载View 的Create函数,在里面创建BrowserView的窗口

[cpp]  view plain copy
  1. browserWindow.create(CRect(0,0,800,600)/*cliengrect*/this);  
  2. browserWindow.goToURL(L"http://localhost/test.html");  

          如果想做的完善点就在View调整大小的时候也调整BrowserView的大小

         4)源码基本都OK了,修改工程属性,否则会各种头文件找不到,各种函数找不到,修改方法,哈哈,照着MiniBrowser修改就行了,主要修改C/C++的头文件和连接器的库路径和引入库  ,查看MiniBrowser工程属性的C/C++的命令行,里面的“  /I   ”都是要包含的头文件,你懂得。连接器的命令行的“    /LIBPATH     ”  添加到连接器-常规-附加库目录中,后面就是一大堆的*.lib ,放在连接器-输入-附加依赖项中 ,整个丢过去,空格隔开就行

         5)好了,准备工作基本都差不多了,然后就直接编译行了,如果编译通过了运行就会出问题,缺少动态链接库DLL,安装Safari,在它的安装目录中的Apple Application Support目录下有你要的DLL,把你编译时在Release-Bin目录下的这个三个文件JavaScriptCore.dll,WebKit.dll,WebKit2WebProcess.exe拷贝过去(这里之所以有个exe文件,从WebKit2开始就从架构那层开始支持多进程了,百度有说),其他的缺啥都去Apple Application Support目录下找就行了,如果不出意外一个机遇WebKit内核的浏览器就诞生了,这里用的是Webkit2的API,可能苹果还没完成开发呢,可能会有各种各样的问题吧

      
      

 注:MiniBrowser是WebKit2 API的实力,还有WinLauncher是WebKit API,建议参考Winlauncher那个例子改

—————————————————————————————————————————————————


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值