Spoiler anzeigen
#include <WindowsConstants.au3>
#include <GUIConstants.au3>
#include <WinAPI.au3>
#include <GDIPlus.au3>
#include <IE.au3>
#include <Buttons.au3>
#include <Array.au3>
Opt("GUIOnEventMode", 1)
Opt("MouseCoordMode", 2) ;Damit die Koords der Maus auf dem Button korrekt erkannt werden.
_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]Global $return [1] = ["_home"] ; Back-Funktion
Global $back = 0 ;
$Title = "HTC Desire HD"
$Width = 300
$Height = 500
$pics = @ScriptDir & "\images\"
; Konstanten
Global Const $BgColorTitle = 0x000000
Global Const $BgColor = 0x464646
; Handyrahmen aussen
$hWnd_Main = GUICreate($Title, $Width, $Height, -1, -1, $WS_POPUP)
GUISetBkColor($BgColor)
$Close = GUICtrlCreatePic($pics & "close.bmp", $Width - 16, 7, 9, 9)
GUICtrlSetOnEvent($Close, "_Exit")
$TitleBar = GUICtrlCreateLabel("", 6, 4, $Width - 42, 17, -1, $GUI_WS_EX_PARENTDRAG)
GUICtrlCreatePic($pics & "HTC-Lautsprecher.bmp", 65, 6, 180, 10)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]; Handydisplay erstellen
$hWnd_Child1 = GUICreate("", 290, 475, 5, 20, $WS_POPUP)
GUISetBkColor(0xFFFFFF, $hWnd_Child1)
$IE = _IECreateEmbedded()
$browser = GUICtrlCreateObj($IE, 11, 13, 268, 395)
GUICtrlSetState($browser, $GUI_HIDE)
;~ GUICtrlCreatePic($pics & "HTC-Brilliant.bmp", 15, 130, 260, 165)
Global $hImg_HTC_Brilliant = _GDIPlus_ImageLoadFromFile($pics & "HTC-Brilliant.bmp")
$home_button = GUICtrlCreatePic($pics & "menu1.bmp", 15, 410, 51, 38)
GUICtrlSetOnEvent($home_button, "_home_button")
$menu_button = GUICtrlCreatePic($pics & "menu2.bmp", 66, 410, 82, 38)
GUICtrlSetOnEvent($menu_button, "_menu_button")
$back_button = GUICtrlCreatePic($pics & "menu3.bmp", 148, 410, 76, 38)
GUICtrlSetOnEvent($back_button, "_back_button")
$suche_button = GUICtrlCreatePic($pics & "menu4.bmp", 224, 410, 49, 38)
GUICtrlSetOnEvent($suche_button, "_suche_button")
GUICtrlCreatePic($pics & "HTC-Logo.bmp", 120, 445, 55, 20)
Global Const $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd_Child1)
Global Const $hBitmap = _GDIPlus_BitmapCreateFromGraphics($Width, 410, $hGraphic)
Global Const $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
Global Const $hBitmap1 = _GDIPlus_BitmapCreateFromGraphics(270, 400, $hGraphic)
Global Const $hBackbuffer1 = _GDIPlus_ImageGetGraphicsContext($hBitmap1)
; Hintergrund/Rahmen des Handydisplays
GUICtrlCreateGraphic(0, 0, 330, 12)
GUICtrlSetBkColor(-1, $BgColorTitle)
GUICtrlCreateGraphic(0, 0, 10, $Height)
GUICtrlSetBkColor(-1, $BgColorTitle)
GUICtrlCreateGraphic(0, 410, $Width, 80)
GUICtrlSetBkColor(-1, $BgColorTitle)
GUICtrlCreateGraphic(280, 0, 20, $Height)
GUICtrlSetBkColor(-1, $BgColorTitle)
; Menü
Global $hButton1 = _Button_Init(20, 30, 45, 45, 1)
_Button_Set_Pic($hButton1, 0, $pics & 'home1.bmp')
_Button_Set_Pic($hButton1, 1, $pics & 'home2.bmp')
_Button_Set_Pic($hButton1, 2, $pics & 'home3.bmp')
_Button_Set_Ani_Speed($hButton1, 30, 14, 7)
Global $hButton2 = _Button_Init(120, 30, 45, 45, 2)
_Button_Set_Pic($hButton2, 0, $pics & 'info1.bmp')
_Button_Set_Pic($hButton2, 1, $pics & 'info2.bmp')
_Button_Set_Pic($hButton2, 2, $pics & 'info3.bmp')
_Button_Set_Ani_Speed($hButton2, 30, 14, 7)
Global $hButton3 = _Button_Init(220, 30, 45, 45, 3)
_Button_Set_Pic($hButton3, 0, $pics & 'alben1.bmp')
_Button_Set_Pic($hButton3, 1, $pics & 'alben2.bmp')
_Button_Set_Pic($hButton3, 2, $pics & 'alben3.bmp')
_Button_Set_Ani_Speed($hButton3, 30, 14, 7)
Global $hButton4 = _Button_Init(20, 100, 45, 45, 4)
_Button_Set_Pic($hButton4, 0, $pics & 'media1.bmp')
_Button_Set_Pic($hButton4, 1, $pics & 'media2.bmp')
_Button_Set_Pic($hButton4, 2, $pics & 'media3.bmp')
_Button_Set_Ani_Speed($hButton4, 30, 14, 7)
Global $hButton5 = _Button_Init(120, 100, 45, 45, 5)
_Button_Set_Pic($hButton5, 0, $pics & 'kamera1.bmp')
_Button_Set_Pic($hButton5, 1, $pics & 'kamera2.bmp')
_Button_Set_Pic($hButton5, 2, $pics & 'kamera3.bmp')
_Button_Set_Ani_Speed($hButton5, 30, 14, 7)
Global $hButton6 = _Button_Init(220, 100, 45, 45, 6)
_Button_Set_Pic($hButton6, 0, $pics & 'nachrichten1.bmp')
_Button_Set_Pic($hButton6, 1, $pics & 'nachrichten2.bmp')
_Button_Set_Pic($hButton6, 2, $pics & 'nachrichten3.bmp')
_Button_Set_Ani_Speed($hButton6, 30, 14, 7)
Global $hButton7 = _Button_Init(20, 170, 45, 45, 7)
_Button_Set_Pic($hButton7, 0, $pics & 'home1.bmp')
_Button_Set_Pic($hButton7, 1, $pics & 'home2.bmp')
_Button_Set_Pic($hButton7, 2, $pics & 'home3.bmp')
_Button_Set_Ani_Speed($hButton7, 30, 14, 7)
Global $hButton8 = _Button_Init(120, 170, 45, 45,
_Button_Set_Pic($hButton8, 0, $pics & 'home1.bmp')
_Button_Set_Pic($hButton8, 1, $pics & 'home2.bmp')
_Button_Set_Pic($hButton8, 2, $pics & 'home3.bmp')
_Button_Set_Ani_Speed($hButton8, 30, 14, 7)
Global $hButton9 = _Button_Init(220, 170, 45, 45, "9")
_Button_Set_Pic($hButton9, 0, $pics & 'home1.bmp')
_Button_Set_Pic($hButton9, 1, $pics & 'home2.bmp')
_Button_Set_Pic($hButton9, 2, $pics & 'home3.bmp')
_Button_Set_Ani_Speed($hButton9, 30, 14, 7)
Global $Btn_msg
Global $pos, $klick
Global $Temp
Global $Anzeige = 0 ; 0 = home, 1 = Menu, usw...
Local $t = TimerInit()
; Display an Handyrahmen "koppeln"
_SetParent($hWnd_Main, $hWnd_Child1)
; Gui einblenden
GuiRoundCorners($hWnd_Main, 0, 0, 20, 20)
GuiRoundCorners($hWnd_Child1, 0, 0, 20, 20)
WinSetTrans($hWnd_Main, "", 0)
WinSetTrans($hWnd_Child1, "", 0)
GUISetState(@SW_SHOW, $hWnd_Main)
GUISetState(@SW_SHOW, $hWnd_Child1)
FadeIn($hWnd_Main)
While Sleep(50)
[/autoit] [autoit][/autoit] [autoit]Switch $Anzeige
Case 0 ; Home
_home()
Case 1 ; Menu
_menu()
Case 3 ; Suche
_suche()
EndSwitch
WEnd
[/autoit] [autoit][/autoit] [autoit]; Funktionen
Func _SetParent($hWnd_Parent, $hWnd_Child)
$nExStyle = DllCall("user32.dll", "int", "GetWindowLong", "hwnd", $hWnd_Child, "int", 0xEC)
DllCall("user32.dll", "int", "SetWindowLong", "hwnd", $hWnd_Child, "int", 0xEC, "int", BitOR($nExStyle[0], $WS_EX_MDICHILD))
DllCall("user32.dll", "int", "SetParent", "hwnd", $hWnd_Child, "hwnd", $hWnd_Parent)
GUISwitch($hWnd_Parent)
EndFunc ;==> _SetParent
Func GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3)
$pos = WinGetPos($h_win)
$ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $pos[2], "long", $pos[3], "long", $i_x3, "long", $i_y3)
If $ret[0] Then
$ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
If $ret2[0] Then
Return 1
Else
Return 0
EndIf
Else
Return 0
EndIf
EndFunc ;==>GuiRoundCorners
Func FadeIn($h)
For $i = 0 To 255 Step 15
Sleep(10)
WinSetTrans($h, "", $i)
Next
EndFunc ;==>FadeIn
Func FadeOut($h)
For $i = 255 To 0 Step -15
Sleep(10)
WinSetTrans($h, "", $i)
Next
EndFunc ;==>FadeOut
Func _Exit()
FadeOut($hWnd_Main)
GUIDelete($hWnd_Child1)
_Button_Dispose($hButton1)
_Button_Dispose($hButton2)
_Button_Dispose($hButton3)
_Button_Dispose($hButton4)
_Button_Dispose($hButton5)
_Button_Dispose($hButton6)
_Button_Dispose($hButton7)
_Button_Dispose($hButton8)
_Button_Dispose($hButton9)
_GDIPlus_GraphicsDispose($hBackbuffer)
_GDIPlus_GraphicsDispose($hBackbuffer1)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_BitmapDispose($hBitmap1)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
Exit
EndFunc ;==>_Exit
; Änderungen für Back-Funktion
Func _home_button()
If $return [UBound($return)-1] <> "_home" then _ArrayAdd($return,"_home")
$Anzeige = 0
$back = 1
GUICtrlSetState($browser, $GUI_HIDE)
EndFunc ;==>_home_button
Func _menu_button()
If $return [UBound($return)-1] <> "_menu" then _ArrayAdd($return,"_menu")
$Anzeige = 1
$back = 1
GUICtrlSetState($browser, $GUI_HIDE)
EndFunc ;==>_menu_button
Func _back_button()
GUICtrlSetState($browser, $GUI_HIDE)
$back += 1
If UBound($return)-$back < 0 then Return
$is = $return [UBound($return)-$back]
If $is = "_home" then $Anzeige = 0
If $is = "_menu" then $Anzeige = 1
If $is = "_suche" then $Anzeige = 3
Call($return [UBound($return)-$back])
EndFunc ;==>_back_button
Func _suche_button()
If $return [UBound($return)-1] <> "_suche" then _ArrayAdd($return,"_suche")
$Anzeige = 3
$back = 1
EndFunc ;==>_suche_button
Func _home()
_GDIPlus_GraphicsClear($hBackbuffer1, 0xFFFFFFFF)
_GDIPlus_GraphicsDrawImageRect($hBackbuffer1, $hImg_HTC_Brilliant, 5, 120, 260, 165)
; Hier was auch immer du willst...
_GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap1, 10, 10)
EndFunc ;==>_home
Func _menu()
_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
$Btn_msg = _Button_Get_Pressed()
_Button_Draw($hBackbuffer, $hButton1)
_Button_Draw($hBackbuffer, $hButton2)
_Button_Draw($hBackbuffer, $hButton3)
_Button_Draw($hBackbuffer, $hButton4)
_Button_Draw($hBackbuffer, $hButton5)
_Button_Draw($hBackbuffer, $hButton6)
_Button_Draw($hBackbuffer, $hButton7)
_Button_Draw($hBackbuffer, $hButton8)
_Button_Draw($hBackbuffer, $hButton9)
_GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0)
; If $Btn_msg Then ToolTip('ButtonID: ' & $Btn_msg)
If $Btn_msg = "1" Then
$Anzeige = 0
ElseIf $Btn_msg = "2" Then
MsgBox(64,"","Menu 2")
ElseIf $Btn_msg = "3" Then
MsgBox(64,"","Menu 3")
ElseIf $Btn_msg = "4" Then
MsgBox(64,"","Menu 4")
ElseIf $Btn_msg = "5" Then
MsgBox(64,"","Menu 5")
ElseIf $Btn_msg = "6" Then
MsgBox(64,"","Menu 6")
ElseIf $Btn_msg = "7" Then
MsgBox(64,"","Menu 7")
ElseIf $Btn_msg = "8" Then
MsgBox(64,"","Menu 8")
ElseIf $Btn_msg = "9" Then
$Anzeige = 2
EndIf
EndFunc ;==>_menu
Func _suche()
GUICtrlSetState($browser, $GUI_SHOW)
_IENavigate($IE,"http://www.google.de/xhtml")
$Anzeige = -1
EndFunc ;==>_suche
Das ist erstmal meine Back-Funktion. Retrokid du kannst es vlt. eleganter lösen?! Hoffe man versteht den Code ein wenig, denn ich habe gerade keine Zeit den Code zu kommentieren.