Foxtable(狐表)用户栏目专家坐堂 → axWebBrowser打开word文件时能否不闪烁


  共有1877人关注过本帖树形打印复制链接

主题:axWebBrowser打开word文件时能否不闪烁

帅哥哟,离线,有人找我吗?
kgdce
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:620 积分:6782 威望:0 精华:0 注册:2013/12/17 1:00:00
axWebBrowser打开word文件时能否不闪烁  发帖心情 Post By:2019/6/24 17:28:00 [只看该作者]

全局代码——————————————————————————————————

Public Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)

    axWebBrowser = sender.ActiveXInstance

End Sub

axWebBrowser = Nothing

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

在窗口中选择word按钮执行的代码———————————————————————

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog

dlg.Filter = "word文件|*.docx"

If dlg.ShowDialog = DialogResult.OK Then '如果用户单击了确定按钮

    Dim web As Object = e.Form.Controls("WebBrowser1").basecontrol

    web.Navigate(dlg.FileName)

    Do Until axWebBrowser IsNot Nothing

        Application.DoEvents

    Loop

    Dim oDocument As object = axWebBrowser.Gettype().InvokeMember("Document", System.Reflection.BindingFlags.GetProperty, Nothing, axWebBrowser, Nothing)

    Dim oApplication As object = axWebBrowser.Gettype().InvokeMember("Application", System.Reflection.BindingFlags.GetProperty, Nothing, oDocument, Nothing)

    oDocument.saved = True

    vars("doc") = oDocument

End If

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

意图通过webbrowser显示word,更换word文件内容,但不想让word工具栏闪烁,能否做到?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/24 17:50:00 [只看该作者]

 

做不到。这个无法控制。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
kgdce
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:620 积分:6782 威望:0 精华:0 注册:2013/12/17 1:00:00
  发帖心情 Post By:2019/6/24 19:02:00 [只看该作者]

Dim th As String = tab.Table.Current("题号")
th = "C:\Users\wuyong\Desktop\wj\第" & th & "题.docx"
Dim app As New MSWord.Application
Dim doc1 = app.Documents.Open(th)
    app.ActiveWindow.Selection.WholeStory
    app.ActiveWindow.Selection.Copy
    Application.DoEvents
    _app.ActiveWindow.Selection.WholeStory
    _app.ActiveWindow.Selection.MoveRight(Unit:=1, Count:=1)
    _app.ActiveWindow.Selection.TypeParagraph
    _app.ActiveWindow.Selection.Paste
    '_app.Documents.save
    'Doc1.Close
    app.quit
    Application.DoEvents
上述代码中_app为公共代码中的word应用程序,而app为新建的一个word进程,打开新文件,将此新文件内容拷到_app的文档中,可以实现不闪烁,但是就是太慢了,需要7至10秒,有没有更快的办法?

如果是用_app打开新文档,会出现提示,选择网页文件路径的提示!
doc1 = _app.Documents.Open(th),如按网页地址写入应可以吗?
[此贴子已经被作者于2019/6/24 19:43:22编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106857 积分:543492 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/6/24 20:25:00 [只看该作者]

不行的,做不到

 回到顶部
帅哥哟,离线,有人找我吗?
kgdce
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:620 积分:6782 威望:0 精华:0 注册:2013/12/17 1:00:00
  发帖心情 Post By:2019/6/25 18:58:00 [只看该作者]

现在改变思路,准备在一个窗口中嵌入word文档,通过windows api操作,窗口的word通过vba操作。
在全局代码中定义
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Public awp As new MSWord.Application
Public hWndWordApp As Long
Public WordDocument As msword.Document
在窗口中   执行下面代码时  不知如何找到窗口句柄
Dim frm As WinForm.Form = Forms("试题编辑")
Dim th As String = "C:\Users\wuyong\Desktop\wj\第0题.docx"
WordDocument= awp.Documents.Open(th)
hWndWordApp = FindWindow("OpusApp", "第0题 - Microsoft Word")
messagebox.show(hWndWordApp)
Call SetParent(hWndWordApp, frm.hwnd) 这句中的frm的句柄找不到,如何解决,有没有一个具体的方案?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106857 积分:543492 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/6/25 20:56:00 [只看该作者]

Call SetParent(hWndWordApp, frm.baseform.Handle)

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/26 10:21:00 [只看该作者]

嵌入exe,参考

 

下载信息  [文件大小:876.3 KB  下载次数:48]
图片点击可在新窗口打开查看点击浏览该文件:嵌入exe最大化.zip

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=73007&skin=0


 回到顶部