| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 5431 人关注过本帖
标题:VFP WebView2 Demo 多实例 更新(2026.02.08)
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11127
专家分:43605
注 册:2014-5-20
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:207 
VFP WebView2 Demo 多实例 更新(2026.02.08)
图片附件: 游客没有浏览图片的权限,请 登录注册


更新(2026.02.08)
1、解决存在某些表单有时失焦问题。
2、精简“无头”模式api,方便使用和提高性能。参考示例:test_json.prg、爬_仙道九绝.prg。
myWebView2_20260208.rar (2.26 MB)


更新(2026.02.06)
1、同步事件只考虑同步等待时间的设定(WAIT_TIMEOUT),当为 0 时直接返回。
2、解决表单有时失焦问题(如右键弹出菜单或另存弹出窗口后会引起表单失焦导致一些鼠标点击失效)。
3、直接调用表单的 Resize 过程改用直接发送 WM_SIZE 消息,解决直接调用 Resize 过程有时无效的问题。
4、获取页面源码原文显示,取消带转义字符。
5、添加一个 JSON 解析示例(以json格式的html转换为html格式源码文本为例),参考:test_json.prg。
6、解决一些“无头”使用存在的问题,参考:test_json.prg、爬_仙道九绝.prg。
myWebView2_20260206.rar (2.25 MB)







[此贴子已经被作者于2026-2-8 11:39编辑过]

收到的鲜花
  • schtg2026-01-27 06:37 送鲜花  1朵  
  • ykxby0014 天前 16:33 送鲜花  20朵  
搜索更多相关主题的帖子: WebView2 更新 VFP 表单 prg 
2026-01-17 02:21
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:USA
等 级:贵宾
威 望:67
帖 子:2447
专家分:4937
注 册:2012-2-29
收藏
得分:17 
2026-01-17 06:37
ykxby001
Rank: 4
等 级:业余侠客
帖 子:127
专家分:236
注 册:2023-7-6
收藏
得分:17 
2026-01-17 07:39
easyppt
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:503
专家分:1026
注 册:2021-11-24
收藏
得分:17 
谢谢吹版!
趁着大脑内存中还有之前研究的记忆,马上测试!

2026,VFP第一碗 刨猪汤 来自 吹版!

[此贴子已经被作者于2026-1-17 09:35编辑过]

2026-01-17 09:33
easyppt
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:503
专家分:1026
注 册:2021-11-24
收藏
得分:0 
看了一下吹版的示例,核心之处:
1、通过数组来保存创建的多个WebView2实例的句柄号。
2、示例模仿多页签浏览器,所以只显示一个活动页签的WebView2实例,其他的隐藏显示。
3、利用嵌入的表单来接收消息事件,这是一个表单里面放多个WebView2实例的神来之笔!
   (关于通过表单接收消息事件,我还有些想法,总感觉这里还有很大的改进空间,后面再说)
通过这2点切入,开始改造中, 有问题再反馈!

初步感觉 这个 main.scx 似乎有点多余,等深入研究后再看看为什么吹版费力增加这个 main.scx
我测试的时候,把这个  main.scx 完全屏蔽了,暂时未发现异常

[此贴子已经被作者于2026-1-17 16:12编辑过]

2026-01-17 13:52
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11127
专家分:43605
注 册:2014-5-20
收藏
得分:0 
回复 5楼 easyppt
main 是顶层窗口,设为最大化、透明(不会以挡住桌面),其他窗口都设为“在顶层窗口中”、desktop = .t.,这样所有实例都可以在屏幕游走。

desktop = .t. 好像有个怪问题,如果不用 main 有时窗口会跑到底层桌面去了(模式表单也一样),程序不会动好像挂死了,但能枚举出来并可用指令正常点击或关闭,程序又复活了。





[此贴子已经被作者于2026-1-17 14:46编辑过]

2026-01-17 14:44
easyppt
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:503
专家分:1026
注 册:2021-11-24
收藏
得分:0 
吹版,常规选项 和 启用事件选项  这些功能没加上吗

2026-01-17 17:15
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11127
专家分:43605
注 册:2014-5-20
收藏
得分:0 
设置有选择
2026-01-17 17:43
easyppt
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:503
专家分:1026
注 册:2021-11-24
收藏
得分:0 
apiMoveWindow() 不起作用了吗
lnHwnd = WebView_Create()
用返回的 lnHwnd 传递给 apiMoveWindow()  来改变尺寸,
然后 WebView_Refresh(lnHwnd)

发现尺寸没刷新显示,之前的版本可以的,是我哪里用的不对吗

=====================================================================
知道原因了:新版本 WebView_Create() 返回的不再是窗口句柄号,具体返回的是什么不清楚,是不是类对象(当然知道原因后,具体返回的是什么其实已经不重要了),重要的是获取 WebView2的句柄号,需要单独通过:WebView_getWebViewHwn(lnHwnd) 得到。




[此贴子已经被作者于2026-1-17 18:22编辑过]

2026-01-17 17:52
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11127
专家分:43605
注 册:2014-5-20
收藏
得分:0 
程序代码:
    PROCEDURE load
        this.api = CREATEOBJECT("MY_WEBVIEW2_API", this)
        this.eve = CREATEOBJECT("MY_WEBVIEW_EVENT", this, this.api)
        BINDEVENT(this.hWnd, MY_WEBVIEW_MESSAGE, this.eve, "onMessage")
        BINDEVENT(this.hWnd, MY_WEBFORM_MESSAGE, this,     "onMessage")
        
        this.wv2 = WebView_Create(this.hWnd, this.hWnd, MY_WEBVIEW_MESSAGE,;
                                  0, 28, this.width, this.height - 28, STRCONV(userDataFolder+0h00,5))
                                  
        this.api.wv2  = this.wv2
        this.hWebView = this.api.getWebViewHwnd() 
    ENDPROC 


    PROCEDURE Resize
        apiMoveWindow(this.hWebView, 0, this.tools_bar.height, this.Width, this.Height-this.tools_bar.height, 1)
        this.api.Refresh()
    ENDPROC

this.api  WebView2 api 类对象
this.eve  WebView2 事件类对象
this.wv2  WebView2 类对象指针
this.hWebView 窗口句柄

apiMoveWindow 在实例表单的 Resize 调用,由父窗口的 Resize 改变其窗口大小而触发

[此贴子已经被作者于2026-1-19 16:42编辑过]

2026-01-17 18:11
快速回复:VFP WebView2 Demo 多实例 更新(2026.02.08)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.065731 second(s), 10 queries.
Copyright©2004-2026, BCCN.NET, All Rights Reserved