Hallo. Ich arbeite an einem neuem Browser, der mit mehreren Tabs arbeiten soll. Das System stelle ich mir folgendermaßen vor:
Dieser soll immer den Inhalt darstellen. Für Tabs verwende ich unterschiedliche _IECreateEmbedded()s:
Code
$Tab1 = _IECreateEmbedded()
_IENavigate($Tab1, "http://www.google.de")
$Browser = GUICtrlCreateObj($Tab1, 0, 0, 100, 100)
Doch wie ändere ich den Inhalt von $Browser, und überschreibe ihn mit dem neuem _IECreateEmbedded()? Mein Script (Es stürtzt ab, sobald man $Menu_Tabs_CreateNormal anwählt):
Spoiler anzeigen
C
#include <IE.au3>
#include <GUIConstants.au3>
#include <Array.au3>
#include <Misc.au3>
#Region Vars
Dim $Tabs[100][3]
$TabsNum = 1
$GuiW = 400
$GuiH = 400
#EndRegion
#Region GUISetup
;ERSTER WICHTIGE TEIL:::
$Tabs[0][0] = "http://www.google.de"
$Tabs[0][1] = _IECreateEmbedded()
$GUI = GUICreate("BunnyBrowse",$GuiW,$GuiH,-1,-1,BitOr($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX,$WS_MAXIMIZEBOX))
$Browser = GUICtrlCreateObj($Tabs[0][1],0,0,$GuiW,$GuiH)
_IENavigate($Tabs[0][1],$Tabs[0][0])
$Menu_Tabs = GUICtrlCreateMenu("Tab")
$Menu_Tabs_CreateNormal = GUICtrlCreateMenuItem("New Tab", $Menu_Tabs)
$Tabs[0][2] = GUICtrlCreateMenuItem($TabsNum&" | Google.de", $Menu_Tabs)
;ENDE ERSTER WICHTIGER TEIL
GUISetState()
#EndRegion
#Region Management
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
;ZWEITER WICHTIGE TEIL:::
Case $Menu_Tabs_CreateNormal
$Tabs[$TabsNum][0] = "http://swag.de"
$Tabs[$TabsNum][1] = _IECreateEmbedded()
_IENavigate($Tabs[$TabsNum][1],$Tabs[$TabsNum][0])
$Tabs[$TabsNum][2] = GUICtrlCreateMenuItem($TabsNum&" | YouTube.com", $Menu_Tabs)
$Browser.property = $Tabs[$TabsNum][1]
$TabsNum += 1
;ENDE ZWEITER WICHTIGER TEIL
EndSwitch
For $i = 0 to $TabsNum-1 step +1
If GUIGetMsg() = $Tabs[$i][2] Then
GUICtrlSetData($Browser, $Tabs[$i][1])
EndIf
next
$GuiWn = WinGetPos("BunnyBrowse")[2]
$GuiHn = WinGetPos("BunnyBrowse")[3]
If $GuiHn <> $GuiH or $GuiWn <> $GuiW Then
$GuiH = $GuiHn
$GuiW = $GuiWn
GUICtrlSetPos($Browser,0,0,$GuiW,$GuiH)
ConsoleWrite($GUIHn & " " & $GUIWn)
If WinGetPos("BunnyBrowse")[2] >= @DesktopWidth and WinGetPos("BunnyBrowse")[3] >= @DesktopHeight Then
GUISetStyle($WS_POPUP)
GUISetState(@SW_MAXIMIZE)
EndIf
EndIf
WEnd
Alles anzeigen
Bei Fragen oder Unklarheiten, Scheut euch nicht zu fragen.