这里只是记录一下寻找cef中页面鼠标单击事件的方法,对于有用的人来说会是一个帮助。
本来想通过libcef的接口来找,但是没有找到,所以就编译了cef-chromium的源码来寻找了。
假设你已经编译了cef-chromium的源码,如果没有请看这篇:
从源码编译cef-chromium的正确姿势
先把cefclient里面的google.com换成baidu.com
目录在E:\cef-chromium\chromium\src\cef\tests\cefclient
直接查找替换即可。
这里加了一个MessageBox来查看是否有点击事件。
然后保存,切换到VS2013命令行,进入目录:
E:\cef-chromium\chromium\src\out\Release
输入ninja进行编译,然后打开此目录下的cefclient.exe来查看鼠标点击结果:
本来想通过libcef的接口来找,但是没有找到,所以就编译了cef-chromium的源码来寻找了。
假设你已经编译了cef-chromium的源码,如果没有请看这篇:
从源码编译cef-chromium的正确姿势
先把cefclient里面的google.com换成baidu.com
目录在E:\cef-chromium\chromium\src\cef\tests\cefclient
直接查找替换即可。
然后打开文件:
E:\cef-chromium\chromium\src\ui\events\win\events_win.cc
在159行,修改如下:
EventType EventTypeFromNative(const base::NativeEvent& native_event) {
switch (native_event.message) {
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
case WM_CHAR:
return ET_KEY_PRESSED;
case WM_KEYUP:
case WM_SYSKEYUP:
return ET_KEY_RELEASED;
case WM_LBUTTONDBLCLK:
case WM_LBUTTONDOWN:MessageBoxA(NULL,"Button clicked Down 3","ok",0);
case WM_MBUTTONDBLCLK:
case WM_MBUTTONDOWN:
这里加了一个MessageBox来查看是否有点击事件。
然后保存,切换到VS2013命令行,进入目录:
E:\cef-chromium\chromium\src\out\Release
输入ninja进行编译,然后打开此目录下的cefclient.exe来查看鼠标点击结果:
鼠标在网页上点一下,跳出信息框,说明修改成功了。这其实是查找了
WM_LBUTTONDOWN
事件,在处理此事件的地方进行搜索,就不难找到。