转载请说明原出处,谢谢~~ 前些日子用wke内核封装了duilib的webkit浏览器控件,好多群里朋友私聊我希望可以我公布源码,今天把这个控件的源码和使用demo公布.其实这个控件封装起来没什么难度,我只是按照原来作者的demo,把相应的消息封装成duilib对应的. 在此首先要感谢wke内核的作者BlzFans以及soui2界面库的作者flyhigh,BlzFans精简了webkit内核后封装为wke并公布了源码,flyhigh对wke进行处理让他更容易移植到dui工程中.wke内核10M大…
近些天在duilib群里经常有朋友问起,怎么让duilib的IE控件可以去边框,去滚动条的问题,或者是如何去控件IE控件的行为.为了避免重复的回答,我就写一篇博文,把处理方法说明一下. duilib中有Webbrowser控件,是继承ActivexUI控件后针对IE进行的封装,使用IE控件的话就用他了.这个控件留了一个接口名为SetWebBrowserEventHandler,这个函数用了指定一个事件处理器,来控制IE的行为.而这个函数需要一个CWebBrowserEventHandler对象指…
转载请说明原出处,谢谢~~ 近些天在duilib群里常常有朋友问起,怎么让duilib的IE控件能够去边框.去滚动栏的问题,或者是怎样去控件IE控件的行为.为了避免反复的回答,我就写一篇博文,把处理方法说明一下. duilib中有Webbrowser控件,是继承ActivexUI控件后针对IE进行的封装.使用IE控件的话就用他了. 这个控件留了一个接口名为SetWebBrowserEventHandler,这个函数用了指定一个事件处理器,来控制IE的行为. 而这个函数须要一个CWebBrowse…
新版博客已经搭建好了,有问题请访问 htt://www.crazydebug.com 公司二期好主播项目,决定用duilib开发界面,且从ie内核换成谷歌内核 再用duilib自定义一个BrowserUI控件之后,在别的头文件中include时,有时候会出现如下错误 1>d:\duilib学习\好主播\好主播\haozhubo\haozhubo\include/cef_dom.h(261): warning C4003: “GetNextSibling”宏的实参不足1>d:\duilib学习\…
写在前面: 老大让我写个脚本自动给他写dms有一段时间了,说实话当时不知道老大指的这个脚本是什么?毕竟是做web的,难道是写个数据库sql语句脚本吗?也就放在了一边.巧了,最近一个朋友说他之前写了个程式,我就问了一下.哇,这不正是我想要的!他是做了一个可以自动登录网站,然后自动填写日报的程式.看了之后感觉很棒,于是请教了一下. 朋友的程式是用的c#做的,然后内嵌了一个浏览器控件webbrowser.一下子恍然大悟,还可以这么玩.平时工作也没有接触到浏览器控件,于是赶紧去搜索java的浏览器控件.…
转载请说明出处,谢谢~~ 原本的duilib是自带浏览器控件的,但是使用了IE内核,我在做仿酷狗音乐播放器时,在右侧乐库要用到浏览器控件,而我使用自带的IE控件却发现了不少缺点,这也是duilib一直没有解决的,编程群里的朋友也反映IE控件不好用.而目前最常用的浏览器内核一个是IE内核,另一个是webkit内核. 先简单介绍一下这个webkit内核             WebKit 是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用)和Trident…
转载请说明出处,谢谢~~ 昨天封装了基于webkit的wke浏览器内核,做成了duilib的浏览器控件,实现了浏览功能,但是单单的浏览功能还不满足需求,在我的仿酷狗项目中乐库的功能需要与浏览器互交. 大家知道在使用酷狗浏览器时,右侧的乐库,当我们选中了某个音乐,这时酷狗就会去缓冲并且播放响应的歌曲.本身浏览器与c++的窗体是不会互交的.而酷狗使用的IE浏览器内核,在c++代码中对CHtmlView类进行继承和重写,并完成IDispatchEx接口的相关工作后,就可以开启IE内核的互交的功能,可以…
转载请说明出处,谢谢~~ 昨天封装好了基于webkit的浏览器控件,修复了duilib的浏览器功能的不足,而我的仿酷狗播放器项目中不光需要浏览器,同时也需要视频播放功能,也就是完成MV的功能.所以我打算封装个视频播放控件. 既然要封装视频播放控件,那就应该封装一个功能强大,不只是用在这个项目,也为将来可能出现的项目做准备.以前不怎么接触视频播放这块,所以查了很多资料.目前市场上90%的视频播放器都是基于这三个构架:MPC/HC架构 .mplayer架构 .VLC架构 .     关于这三个构架的…
CEF中文教程(google chrome浏览器控件) -- CEF简介 2013-04-10 16:48 42928人阅读 评论(4) 收藏 举报  分类: CEF(2)    目录(?)[+]   官方主页:  点击打开链接   CEF简介: 嵌入式Chromium框架(简称CEF) 是一个由Marshall Greenblatt在2008建立的开源项目,它主要目的是开发一个基于Google Chromium的Webbrowser控件.CEF支持一系列的编程语言和操作系统,并且能很容易地整合…
一.不自动调整子控件的宽度(TreeView宽度小于260时) 相信亲们用同样的代码,显示效果肯定和Alberl不一样吧~O(∩_∩)O~ 嘿嘿,仔细对比下,看看你们的列表头背景图片是下面这样的么? 细心的小伙伴们应该早就发现了,可以看到右边那个箭头并没有完全显示出来,这是因为TreeView又调皮啦! 最开始觉得是TreeView没有自动调整控件的宽度,去看了下代码,没啥问题,并且TestApp1里面那个tree也没出现这种现象,所以就一直以为是自己的XML代码出了问题.由于对duilib并不…
在<duilib进阶教程 -- TreeView控件的bug (9)>里,Alberl发现了两个bug,并解决了其中一个,现在教程已经接近尾声啦,所以Alberl就解决了另外一个bug. Bug现象: 第一次启动软件时,由于播放列表并没有文件,所以没有显示垂直滚动条,当我们拖入文件后,就显示了垂直滚动条,这个时候会自动调整子控件的宽度,于是一切显示正常. 但是当我们第二次启动软件时,由于软件会加载文件到播放列表,所以一开始就显示了垂直滚动条,但这个时候并没有自动调整子控件的宽度,所以子控件显示…
原文:关于WebBrowser(浏览器)控件的调用 在VS.NET2002和2003中,要应用WebBrowser(浏览器)控件,得用InterOp,刚开始用的时候很正常,后来不知道为什么窗口一打开就抛出“窗口不能创建”异常,确认两次“继续”就能正常使用,反复从头开始创建窗口好几次都是一样的问题,百思不得其解.今天请教装配脑袋,他说是COM引发的问题,但没有办法确认到底哪里出错了.我再折腾了一些,使出注释大法,把出错的代码(VS.NET自动生成的)逐行注释掉,发现把“((System.Compo…
TOleControl(WebBrowser1).Visible := False 这样就可以隐藏浏览器控件了. ---------------------------------------------- RTC三层技术交流,QQ: 作者: 男 crystalmoon (黑夜杀手) ▲▲▲▲▲ - 盒子活跃会员 -- :: 楼: sorry,我上面的3个发贴有问题,楼的对,我只看了一下我原来的测试demo里是 写的 webbrowser.visible 和楼主一样,以为就没问题,现在7楼说了后…
需求场景:在查询页面,填写查询条件,查询条件包括上传的图片,根据图片的特征查询,这就需要在提交的时候,使用POST提交,因为GET提交无法提交图片数据,提交查询条件之后,在新的窗口展示查询结果.(当然查询结果页面可能不支持F5刷新页面) 表单HTML代码示意(注意method="post" target="_blank" action指向新页面): <!DOCTYPE html> <html> <head> <title&g…
问题:dcef3 for Firemonkey 浏览器控件,拉动窗体大小会闪烁的问题 修改源码:ceffmx.pas 找到 procedure TCustomChromiumFMX.Resize; 修改如下: procedure TCustomChromiumFMX.Resize; var brws: ICefBrowser; b: TBitmap; begin inherited; if not (csDesigning in ComponentState) then begin brws :…
什么是UIWebViewUIWebView是iOS内置的浏览器控件系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但能加载远程的网页资源,还能加载绝大部分的常见文件html\htmpdf.doc.ppt.txtmp4… … UIWebView常用的加载资源的方法- (void)loadRequest:(NSURLRequest *)request;    常用属性和方法 重新加载(刷新) - (void)reload; 停止加载 - (void)stopLoad…
PB中使用Microsoft Web Browser控件步骤: 在pb的某窗口中加入OLE对象,选择Insert control(插入控件),然后选中"Microsoft WEB 浏览器",(随系统而定的版本),就可以在这个窗口直接使用IE浏览器控件了. 常用函数:(对这个ole控件取名叫ole_web)ole_web.object.navigate(string ls_url) file://浏览某url, 譬如:ole_web.object.navigate('http://liu…
先简单介绍下DotnetBrowser作为基本浏览器控件的使用: 1.创建基于.net 4.0的桌面项目,如下所示: 2.首次使用的时候在工具栏里添加dotnetbrowser控件,如下图所示: 3.将dotnetbrowser控件拖至要显示的窗体上,如下图所示: 4.在Program里加入以下代码: 5.回到窗体,在窗体的Load时间里加入以下代码: 6.OK,点击F5,启动运行.既可看到如下效果: 总结:dornetbrowser的使用基本和微软内置的webrowser使用一样,但是更强大哦…
用C#编写ActiveX控件,开发浏览器控件,注册ActiveX 控件用C#编写ActiveX控件 开发浏览器控件这是本控件开发完成后的一个简单应用.我们可以利用它以本地文件夹为单位来批量更新服务器的文件.多线程文件夹上传实现最近做一个Web项目,需要自己编写一个ActiveX控件.ActiveX控件大多是使用C++来开发的,而我对他们并不熟悉,因此考虑使用熟悉的C#编写ActiveX控件. ActiveX 控件注册 首先,建立一个Windows控件库 项目 My_HtmlControl,并拖入…
WebBrowser是IE内置的浏览器控件.WebBrowser是IE内置的浏览器控件.WebBrowser是IE内置的浏览器控件.重要的事情说三遍,原因是一开始使用的时候就在这踩了坑. WebBrowser编程需要注意的几点总结: 1.调用javascript的时候要写兼容ie的才行,比如触发一个元素ID为t1的双击事件. function noIE(){ //非IE兼容,触发无效 var event = new MouseEvent("dblclick", { "view…
參考http://blog.csdn.net/zhuhongshu/article/details/38540711 改进: 1.跟其它duilib控件一样,不包括窗体 2.将onURLChanged和onTitleChanged发送到到Notify里处理 效果: 不足的地方: 1.改变大小时会闪屏(等大神来改进) 2.contextMenuEvent没反应,原样例也是这种 源代码里的duilib是截至发表时最新的. duilib:https://github.com/duilib/duilib…
到上一个教程为止,界面显示的代码就都介绍完啦,现在开始介绍控件的响应,其实在<2013 duilib入门简明教程 -- 事件处理和消息响应 (17)>里已经列出了duilib自己定义的所有消息,并且前面也介绍了Button和Tab的响应,还是有小伙伴们不知道怎么响应其他控件,因此这里介绍一下其他控件的响应. 需要注意的是,如果要响应控件,则必须给控件指定一个唯一的ID,在windows编程里,每个控件的ID都是一个数字,如IDC_BUTTON_ 等等,可以用GetDlgItem()来获取控件的…
转载请说明出处,谢谢~~ 我在仿酷狗音乐播放器的开发日志系列里,曾经提到了这个bug,文章地址为:http://blog.csdn.net/zhuhongshu/article/details/38145365.但是当时的开发日志里,我对bug的描述过于简单.所以重新说明一下. 使用Duilib时,当为一个控件指定了float属性,也就是使用了绝对布局,那个控件的位置和大小就固定了.同时Duilib提供了另一个属性:relativepos.这个属性在官方的属性列表里面没有给出,我这里补充一下:…
duilib的所有控件均绘制在唯一的真实窗口之中,本篇就具体看下这个绘制的过程.所有的绘制过程均在WM_PAINT消息处理过程中完成.由窗口及消息篇可以看到,窗口消息处理最终流到了CPaintManagerUI::MessageHandler中.包括WM_PAINT在内消息均在此函数中处理,我们仅关注WM_PAINT消息 case WM_PAINT: { // Should we paint? RECT rcPaint = { }; if( !::GetUpdateRect(m_hWndPain…
最近遇到一个怪事,通过正常打开浏览器,按照正常的web登录然后点击进入系统流程,将各控件的ID识别成功,然后使用 python3+selenium写好脚本,高高兴兴的用脚本跑时老是提示找不到控件,然后就重新打开浏览器登录重新识别控件,发现识别出来的控件ID又跟之前的不一样,瞬间怀疑是不是自己的眼睛出现视觉疲劳了. 重新关闭所有浏览器重新登录,再次识别该有问题的控件,发现识别出来的控件又跟之前第一次识别出来的一样,但是用脚本跑时还是一如既往的提示找不到该 控件,于是乎就博客园,csdn,stack…
上一个教程中,虽然播放列表的框架和迅雷一样了,但是字体大小.文字居中还没有解决.如果是刚学duilib,搞定这个可不容易,因为在有了入门教程的指导后,很容易就想到去看[属性列表.XML],但是当你试了一圈之后,发现font.itemfont.align.itemalign等等,都没有效果! 这个时候就只有去看duilib内部的代码了,和上个教程一样,虽然小伙伴们花一个晚上或者几个晚上就能搞出来,但一样没什么含金量,纯体力活,所以Alberl在这里告知一下小伙伴,省得重复掉坑. 虽然CTreeVi…
其实对WM_MOUSEHOVER消息的处理,因为WindowImplBase基类中对此消息未处理,所以在自己的窗口类中实现: .h文件中加入 LRESULT OnMouseHover( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled ); .cpp文件加入实现 LRESULT CLoginWnd::OnMouseHover( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHan…
.h文件 #ifndef __UIHEADICON_H__ #define __UIHEADICON_H__ /* 名称:圆形头像控件(派生CButtonUI类) */ class CHeadUI: public CButtonUI { public: CHeadUI(); LPCTSTR GetClass() const; LPVOID GetInterface(LPCTSTR pstrName); void SetAttribute(LPCTSTR pstrName, LPCTSTR pst…
上一篇讲了窗口及消息,了解了大体的程序框架.这一篇说的是控件的创建. duilib支持XML配置文件,即根据XML创建窗口及控件,将界面与逻辑分开,便于修改及维护.上一篇的示例中可以看到在消息WM_CREATE中有控件创建的相关代码. if( uMsg == WM_CREATE ) { m_pm.Init(m_hWnd); //根据XML创建控件 CDialogBuilder builder; CControlUI* pRoot = builder.Create(_T(, NULL, &m_pm…
在我们进行Android应用界面设计和时候,为了界面风格的统一,我们需要对一些控件进行自定义.比如我们的应用采用的蓝色风格,但是 android的EditText控制获得焦点后显示的却是黄色的边框背景.那么如何让EditText在获得焦点的时候显示的是我们自定义的蓝色的背景 呢? 首先准备两张图片,一张是EditText获得焦点后的边框背景,一张是没有获得焦点时的背景,注意制作成9.png样式的图片,然后在drawable里添加一个selector_edittext_bg.xml文件,内容如下:…