Bonjour a tous,
Je souhaite ouvrir des documents openoffice dans une fenetre fille MDI en visual basic 6.
Or j'ai testé avec n'importe quel document comme blocnote ou word cela fonctionne mais les documents d'openoffice ceux ci s'ouvrent en dehors de ma feuille MDI mere.
Voici le code de la solutions qui marche avec des documents autres que openoffice :
Solution)
' Declaration d'une fonction permettant de trouver l'identifiant d'une fenetre en fonction de son entete
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
' Fonction permettant d'ouvrir n'importe quel document
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
...
Private sub test()
Dim hcalc As Long
Dim RetVal
dim hParent As Long
' J' ouvre mon fichier word ou openoffice
RetVal = ShellExecute(0, "Open", "C:\Documents and Settings\Administrateur\Bureau\test.doc", "", "", 10)
' Je recupere l'identifiant de ma fenetre =>hwnd en fonction de son entete
hcalc = FindWindow(vbNullString, "test.doc- Microsoft Word" )
' Je change la fenetre parent de mon document en lui donnant le hWnd de ma fenetre fille
hParent = SetParent(hcalc, Me.hWnd)
end sub
Si quelqu'un a une idée sur le probleme ou mieux une solution ca m'interresse, pour faire en sorte d'ouvrir des documents "openoffice" via une fenetre MDI fille.