注册 登录
编程论坛 VB6论坛

[求助]Word嵌入到VB窗体里的问题

kfp_kaka 发布于 2006-03-28 11:47, 4098 次点击
我想把一个Word文档嵌入我的vb窗体中,具体要怎么做呢?还要让Word隔一段时间就自己翻页
9 回复
#2
kfp_kaka2006-03-28 17:21
我自己试了一下,用一个PictureBox控件容器,打开的Word显示在PictureBox里,
在模块用到了两个API函数
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

Private Sub OpenWord()
'打开Word文档
Dim hWndWordApp As Long
Dim WordObject As Word.Application
Dim WordDocument As Word.Document

Picture1.Visible = True

Set WordObject = CreateObject("Word.application")
WordObject.Visible = True
SetAttr FilePath, vbReadOnly 'FilePath为Word文档的路径

hWndWordApp = FindWindow("OpusApp", "Microsoft Word")
Call SetParent(hWndWordApp, Picture1.hwnd)

Set WordDocument = WordObject.Documents.Open(FilePath)
End Sub

问题:
这样写后在Picture框里可以显示word了,不过我想让打开的word能自动填满picture,请问要怎么做啊?还有就是想让picture框里的word文档在隔一段时间后自动翻页(假设word里有多页的话)
#3
kfp_kaka2006-03-28 17:25
白色背景看起来会舒服点吧
我自己试了一下,用一个PictureBox控件容器,打开的Word显示在PictureBox里,
在模块用到了两个API函数
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

Private Sub OpenWord()
'打开Word文档
Dim hWndWordApp As Long
Dim WordObject As Word.Application
Dim WordDocument As Word.Document

Picture1.Visible = True

Set WordObject = CreateObject("Word.application")
WordObject.Visible = True
SetAttr FilePath, vbReadOnly 'FilePath为Word文档的路径

hWndWordApp = FindWindow("OpusApp", "Microsoft Word")
Call SetParent(hWndWordApp, Picture1.hwnd)

Set WordDocument = WordObject.Documents.Open(FilePath)
End Sub

问题:
这样写后在Picture框里可以显示word了,不过我想让打开的word能自动填满picture,请问要怎么做啊?还有就是想让picture框里的word文档在隔一段时间后自动翻页(假设word里有多页的话)
#4
kfp_kaka2006-03-28 21:04
顶一下
#5
luhaidong2006-05-25 12:42

学学,收益非浅

#6
lg500002007-08-18 16:30
好,多顶几下
#7
lg500002007-08-18 17:34
请教几个问题
一、FindWindow的两个参数lpClassName,lpWindowName 什么意思
二、“SetAttr FilePath, vbReadOnly 'FilePath为Word文档的路径”起什么作用
三、hWndWordApp = FindWindow("OpusApp", "Microsoft Word")中的"OpusApp"和 "Microsoft Word"是什么意思
谢谢

#8
multiple19022007-08-18 18:06
以下是引用lg50000在2007-8-18 17:34:25的发言:
请教几个问题
一、FindWindow的两个参数lpClassName,lpWindowName 什么意思
二、“SetAttr FilePath, vbReadOnly 'FilePath为Word文档的路径”起什么作用
三、hWndWordApp = FindWindow("OpusApp", "Microsoft Word")中的"OpusApp"和 "Microsoft Word"是什么意思
谢谢

"lp"="long pointer" 长整数指针,句柄是长整数

ClassName 类名
WindowName 窗口名


SetAttr 设置文件属性
第三个问题见第一个问题

#9
lg500002007-08-18 18:51

我按你的方法,编了以下函数,但PPT文件是全屏打开的,而且有两个PPt程序,一个是空的,不知道为什么,请帮帮忙
Public Sub openpowerpoint(filename As String)
'打开PowerPoint文档
Dim hWndpptApp As Long
Dim pptObject As PowerPoint.Application
Dim pptDocument As PowerPoint.Presentation
Form1.Visible = True

Set pptObject = New PowerPoint.Application
pptObject.Visible = True
'SetAttr filename, vbReadOnly 'FilePath为Powerpoint文档的路径

hWndpptApp = FindWindow("OpusApp", "Microsoft PowerPoint")
Call SetParent(hWndpptApp, Form1.hWnd)

Set pptDocument = pptObject.Presentations.Open(filename)

End Sub

#10
cf198709282014-05-06 09:05
太感谢了
1