| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 18927 人关注过本帖, 1 人收藏
标题:VFP WebView2 Demo 多实例 更新(2026.05.24)
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11606
专家分:43678
注 册:2014-5-20
收藏(1)
已结贴  问题点数:100 回复次数:396 
VFP WebView2 Demo 多实例 更新(2026.05.24)

图片附件: 游客没有浏览图片的权限,请 登录注册


更新(2026.05.24)

添加几个函数:

1、WebView_IsGeneralAutofillEnabled() ...... 是否启用自动填充(默认为 FALSE)
2、WebView_IsPasswordAutosaveEnabled() ..... 是否启用密码保存提醒(默认为 FALSE)
3、WebView_IsReputationCheckingRequired() .. 是否启用识别钓鱼和恶意网站(默认为 TRUE)

下载附件:
myWebView2_20260524.rar (2.38 MB)










[此贴子已经被作者于2026-5-24 20:34编辑过]

收到的鲜花
  • schtg2026-01-27 06:37 送鲜花  1朵  
  • ykxby0012026-02-06 16:33 送鲜花  20朵  
  • 外部三电铃2026-03-16 07:09 送鲜花  1朵  
搜索更多相关主题的帖子: VFP WebView2 是否 默认 更新 
2026-01-17 02:21
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:USA
等 级:贵宾
威 望:67
帖 子:2711
专家分:4967
注 册:2012-2-29
收藏
得分:17 
2026-01-17 06:37
ykxby001
Rank: 4
等 级:业余侠客
帖 子:147
专家分:236
注 册:2023-7-6
收藏
得分:17 
2026-01-17 07:39
easyppt
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:532
专家分:1076
注 册:2021-11-24
收藏
得分:17 
谢谢吹版!
趁着大脑内存中还有之前研究的记忆,马上测试!

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

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

2026-01-17 09:33
easyppt
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:532
专家分:1076
注 册: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
帖 子:11606
专家分:43678
注 册: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
帖 子:532
专家分:1076
注 册:2021-11-24
收藏
得分:0 
吹版,常规选项 和 启用事件选项  这些功能没加上吗

2026-01-17 17:15
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11606
专家分:43678
注 册:2014-5-20
收藏
得分:0 
设置有选择
2026-01-17 17:43
easyppt
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:532
专家分:1076
注 册: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
帖 子:11606
专家分:43678
注 册: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.05.24)
数据加载中...
 
   
关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

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