#1 Thu 30 April 2020 22:52
- Chezkele
- Juste Inscrit !
- Date d'inscription: 30 Apr 2020
- Messages: 2
[Mapinfo] afficher une carte dans une fenetre VB.Net
Bonjour,
je voudrais afficher un fond de carte dans une fenĂȘtre VB.net et mon code l'affiche dans une fenĂȘtre mapinfo. Le principe est d'indiquer que la fenĂȘtre VB.Net est parente de la fenĂȘtre Mapinfo et il semble exister des instructions pour cela mais ce ne fonctionne pas.
Voici en substance ce que j'ai fait:
Code:
Dim g_mapinfo As MapInfoApplication
g_mapinfo = New MapInfoApplication 'CreateObject("MapInfo.Runtime")
g_mapinfo.Do("Set CoordSys Earth Projection 3, 1002, ""m"", 0, 46.8, 45.89891889, 47.69601444, 600000, 2200000 ")
g_mapinfo.Do("Open Table """ & adresse du fond de carte ")
Dim hwnd As String = Me.picFrance.Handle().ToString()
g_mapinfoi.Do("Set Application Window " & hwnd)
g_mapinfo.Do("Set Next Document Parent " & hwnd & " Style 1")Merci d'avance, Ch.
Hors ligne
#2 Tue 05 May 2020 16:44
- Chezkele
- Juste Inscrit !
- Date d'inscription: 30 Apr 2020
- Messages: 2
Re: [Mapinfo] afficher une carte dans une fenetre VB.Net
Bonjour,
j'ai finalement rĂ©ussi Ă faire ce que je voulais, je poste ma solution au cas oĂč quelqu'un ayant le mĂȘme problĂšme passerait par lĂ .
J'ai laissé tomber les commandes MapInfo "Application Window" et "Next Document Parent" qui ne faisaient pas ce que je voulais, et j'ai finalement utilisé la fonction VB.Net "SetPArent(pointeurEnfant, pointeurParent)".
Dans le code qui suit, "mi" est le nom d'un objet "MapInfoApplication":
Code:
' ligne nécessaire à l'usage de SetParent(), à écrire en dehors de toute méthode
Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
' chargement de la "fenĂȘtre carte"
mi.Do("Map From nomCarte ")
' rĂ©cupĂ©ration de l'identifiant et du pointeur de la fenĂȘtre carte
Dim ident As Integer = mi.Eval("WindowID(1)")
Dim hwnd3 As IntPtr = New IntPtr(Convert.ToInt32(mi.Eval("WindowInfo(" & ident & ", 12)")))
'dĂ©finition du parent de la fenĂȘtre carte
Dim hwnd As String = Me.fenetreParent.Handle().ToString()
SetParent(hwnd3, hwnd)Hors ligne

