Как можно открыть WORD документ в форме приложения?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Как можно открыть WORD документ в форме приложения?

Сообщение kibernetics » 27.07.2009 (Пн) 11:00

Народ, может подскажет кто-нибудь, как открыть вордовский документ на форме?
Без редактирования можно, лишь бы отобразить документ.
Нашёл код такой:

Код: Выделить всё
Private Sub LoadWord()
    Dim RectCoord As RECT
    Dim lngDocHandle As Long
    Dim oWord As Object 'Word.Application
    Dim oDoc As Object 'Word.Document
   
    If oWord Is Nothing Then
        Set oWord = CreateObject("Word.Application.12")
    End If
   
    oWord.Documents.Open FileName:="c:\test.doc"
    oWord.Documents("test.doc").Activate
   
    lngDocHandle = FindWindow(vbNullString, "Test.Doc - Microsoft Word")
    SetParent lngDocHandle, Frame1.hwnd
    GetClientRect Frame1.hwnd, RectCoord
    MoveWindow lngDocHandle, 0, 0, RectCoord.Right - RectCoord.Left, RectCoord.Bottom - RectCoord.Top, True
End Sub


но, не находится окно при поиске:
Код: Выделить всё
lngDocHandle = FindWindow(vbNullString, "Test.Doc - Microsoft Word")


может ещё есть варианты? очень нужно предварительно просматривать doc в vb

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как можно открыть WORD документ в форме приложения?

Сообщение alibek » 27.07.2009 (Пн) 13:26

Понести на форму объект OLE.
Lasciate ogni speranza, voi ch'entrate.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Как можно открыть WORD документ в форме приложения?

Сообщение kibernetics » 27.07.2009 (Пн) 13:45

alibek писал(а):Понести на форму объект OLE.

это как надо читать? как "поместить"?
просто многие говорят, что надо юзать OLE, но немногие знают как это делать.
alibek, может быть у тебя есть какойто пример кода?

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Как можно открыть WORD документ в форме приложения?

Сообщение viter.alex » 27.07.2009 (Пн) 13:46

Код: Выделить всё
Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Private Sub Form_Load()
  Dim hWord As Long
  Dim lpRect As RECT
  Dim wdApp As Object
  Dim wdDoc As Object
 
  Set wdApp = CreateObject("Word.Application")
  Set wdDoc = wdApp.Documents.Add
 
  hWord = FindWindow("OpusApp", wdApp.Documents(1).Windows(1).Caption & " - " & wdApp.Caption)
  SetParent hWord, Frame1.hwnd
  GetClientRect Frame1.hwnd, lpRect
  MoveWindow hWord, 0, 0, lpRect.Right - lpRect.Left, lpRect.Bottom - lpRect.Top, True
  wdApp.Visible = True
 
End Sub
Лучше день потерять — потом за пять минут долететь!

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: Как можно открыть WORD документ в форме приложения?

Сообщение awl100Alex » 27.07.2009 (Пн) 15:27

Помещаешь на форму OLE...
Код: Выделить всё
Private Sub Form_Load()
  OLE1.SizeMode = 3 ‘3 - Zoom
  OLE1.CreateEmbed ("C:\Test.doc")
End Sub

Все остальное в инете можно найти.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 93

    TopList