试试这个?
import win32com.client as com
import ctypes as ct
import wx
import time, string
ge = com.Dispatch("GoogleEarth.ApplicationGE")
user32 = ct.windll.user32
user32.ShowWindowAsync(ge.GetMainHwnd(), 0)
class MainPanel(wx.Panel):
def __init__(self, *args, **kwds):
wx.Panel.__init__(self, *args, **kwds)
self.spwin = wx.SplitterWindow(self, -1 , style=wx.SP_3D|
wx.SP_BORDER)
sizer_1 = wx.BoxSizer(wx.VERTICAL)
self.nb = wx.Panel(self.spwin, -1, size=(100,100))
self.nb.SetBackgroundColour("#ffffff")
self.canvas = wx.Panel(self.spwin, -1, size=(300,300))
self.canvas.SetBackgroundColour("#ffff00")
user32.SetParent(ge.GetRenderHwnd(), self.canvas.GetHandle())
self.spwin.SplitVertically(self.nb, self.canvas, 152)
sizer_1.Add(self.spwin, 1, wx.EXPAND, 0)
self.SetAutoLayout(True)
self.SetSizer(sizer_1)
sizer_1.Fit(self)
sizer_1.SetSizeHints(self)
app = wx.PySimpleApp()
frame = wx.Frame(None, -1, "GE Test", size=(800,600))
panel = MainPanel(frame, -1)
sizermain = wx.BoxSizer(wx.VERTICAL)
sizermain.Add(panel, 1, wx.EXPAND, 0)
frame.SetAutoLayout(True)
frame.SetSizer(sizermain)
frame.Layout()
frame.Show(True)
#user32.SetParent(ge.GetRenderHwnd(), frame.GetHandle())
app.MainLoop()