Edit: Falsch verstanden, sorry.
Beiträge von Nathax
-
-
Du müsstest den Emulator ja nicht komplett selber programmieren. Es gibt ja für die Android-Entwickler Emulatoren zum Testen ihrer Programme/Spiele ohne jedes mal ein Smartphone anzuschließen.
Es würde ja reichen, sich so einen downloadzuloaden und per WinApi den Fensterrahmen zu entfernen und den Emulator als ChildGui an deine Gui zu hängen. -
Sieht schonmal nicht schlecht aus, aber ich würde es ein wenig schmaler machen und mit diesem "Spiegel"-Effekt (s. Original) würde es noch besser aussehen.
Du könntest ja jetzt noch versuchen per Emulator das HTC-Betriebsystem ins Smartphone einzubauen. -
Geil ist ja auch der hier:
[Blockierte Grafik: http://farm4.static.flickr.com/3313/5838166964_26e85a8946.jpg]
Wenn ich das richtig in Erinnerung habe, lädt er sich beim "Cuben" auf, sodass man später bestimmte elektronische Geräte durch die gespeicherte Energie per Induktion aufladen kann.
-
Was für Würfel hast du dir denn bestellt?
-
Hab vor ca. nem Jahr aufgehört, besitze mehrere Speedcubes und meine Bestzeit liegt bei 28 Sekunden ohne besonderen Skip.
-
Hi ich versteh zwar nicht richtig, was du willst, aber wenn du Z 27. zu
[autoit]$inner_rgn = DllCall("gdi32.dll", "long", "CreateRectRgn", "long", $i_x, "long", $i_y, "long", $i_x + $i_sizew, "long", $i_y + $i_sizeh)
[/autoit]veränderst, wird ein Rechteck gezeichnet, bzw. radiert...
RapIt
Danke, genau das hab ich gesucht.
-
Ok, werde sie ändern...
-
Les doch die Fensterposition aus und rechne dann z.B. 100x und 50y drauf, wenn die Checkbox im Fenster um 100 nach rechts und 50 nach unten verschoben wäre.
-
Hallo,
ich wollte ja ein Hintergrundbild in meine GUI mit Tab einbauen, das hat ja nicht so ganz geklappt.
Heute ist mir mein altes Tool eingefallen, was ich einmal zum Spaß programmiert habe:Spoiler anzeigen
[autoit]#include <GuiConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>HotKeySet("{ESC}","_exit")
[/autoit] [autoit][/autoit] [autoit]$search_gui = GUICreate("Search", 5000, 5000,-2000,-2000,$WS_POPUP)
[/autoit] [autoit][/autoit] [autoit]
GUISetBkColor(0x0, $search_gui)
_GuiHole($search_gui, 2500, 2500, 200, 200)
GUISetState()
While 1
$msg = GUIGetMsg()
$mpos = MouseGetPos()
WinMove("Search","",$mpos[0]-2600,$mpos[1]-2600)
If WinGetTitle("[active]","") <> "Search" Then
Winactivate("Search","")
EndIf
WEnd
ExitFunc _GuiHole($h_win, $i_x, $i_y, $i_sizew, $i_sizeh)
[/autoit] [autoit][/autoit] [autoit]
Dim $pos, $outer_rgn, $inner_rgn, $wh, $combined_rgn, $ret
$pos = WinGetPos($h_win)$outer_rgn = DllCall("gdi32.dll", "long", "CreateRectRgn", "long", 0, "long", 0, "long", $pos[2], "long", $pos[3])
[/autoit] [autoit][/autoit] [autoit]
If IsArray($outer_rgn) Then
$inner_rgn = DllCall("gdi32.dll", "long", "CreateEllipticRgn", "long", $i_x, "long", $i_y, "long", $i_x + $i_sizew, "long", $i_y + $i_sizeh)
If IsArray($inner_rgn) Then
$combined_rgn = DllCall("gdi32.dll", "long", "CreateRectRgn", "long", 0, "long", 0, "long", 0, "long", 0)
If IsArray($combined_rgn) Then
DllCall("gdi32.dll", "long", "CombineRgn", "long", $combined_rgn[0], "long", $outer_rgn[0], "long", $inner_rgn[0], "int", 4)
$ret = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $combined_rgn[0], "int", 1)
If $ret[0] Then
Return 1
Else
Return 0
EndIf
Else
Return 0
EndIf
Else
Return 0
EndIf
Else
Return 0
EndIfEndFunc ;==>_GuiHole
[/autoit] [autoit][/autoit] [autoit]Func _exit()
[/autoit]
Exit
EndFuncEs zeichnet ein Loch in eine GUI. Wenn ich das Loch eckig machen könnte, dann könnte ich eine ParentGUI mit Bild über die eigentliche GUI setzen und da, wo die Controls, bzw. das Tab-Menü sind ein "Kasten-Loch" erstellen, sodass das Bild an der Stelle, wo sich Controls befinden, "durchgebohrt" wird und so die Controls durchscheinen und man sie anklicken kann.
Wie kann ich aus dieser Funktion eine Funktion machen, die ein Rechteck anstelle eines Kreies wegradiert? -
autoBert Auch ne gute Idee. Ich schau mal für was ich mich entscheiden werde. Ich finde, dass wenn man ein einfarbiges Hintergrundbild nimmt, es so aussieht, als hätte man ein farbiges Tab-Control (s. Anhang).
-
Natürlich weis ich, dass man es so machen kann, ich habe selber ein IP-Control in meinem Programm, aber selbst das eine flackert schon manchmal beim Zeichnen und ich glaube, wenn ich 20 Controls habe wird es nicht gerade besser. Trotzdem Danke!
Ich habe es mal so gelöst (hier lösen lassen) das ser Klick auf den Tab ausgwertet wurde und
infolgedessen welcher tab angeklickt wurde mit hide/show die Controls versteckt wurden.In meinem Fall ging es um das IP Control welches bei allen Tabs durchscheinte.
Gruß N!ce
-
Ok, dann werde ich halt versuchen, die richtige Mischung aus euren Posts (Nochmal DANKE an alle dafür, die mir geholfen haben! ) und meinem Programm zu finden, um das beste rauszuholen und das Design möglichst gut hinzubekommen.
Wer eine Lösung findet, kann sie natürlich immernoch gerne posten und ich wäre auch sehr dankbar dafür!
Der Post bleibt solange auf -offen- -
Hallo retrokid,
also chip 's Lösung funktioniert bei mir (Win XP SP3) einwandfrei,
frohes neues Jahr
autoBert
Es funktioniert zwar das Tab-Menü, aber rechts neben den Tabs ist ein grauer Bereich, den ich nicht haben möchte. Ich hab zwar schon mehre Pic-Controls drübergelegt, aber dies ist immernoch sehr komisch und ich frage mich halt, ob es eine elegantere Lösung gibt, bei der kein Stück Grauzone übrigbleibt und zusätzlich die Tabs funktionieren. Bis jetzt wurde immer nur eines der beide Kriterien erfüllt.
-
Geht leider beides nicht.
-
Funktioniert leider auch nicht!
-
Funktioniert nicht!
-
Ich habe eine Gui mit Hintergrundbild und 3 Tabs. Wenn ich einen Button erstelle im 1. Tab, dann bleibt er wenn ich in den 2. bzw. 3. wechsel da. Im 2. und 3. kann ich ihn erst gar nicht erstellen.
Was muss ich ändern?Spoiler anzeigen
[autoit]#include <Constants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GuiTab.au3>
#include <TabConstants.au3>
#include <WinAPIEx.au3>
#include <WindowsConstants.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]Global Const $STM_GETIMAGE = 0x0173
[/autoit] [autoit][/autoit] [autoit]
Global Const $PRF_CLIENT = 0x04Global $hPic, $hTab, $hDll, $pDll, $hProc
[/autoit] [autoit][/autoit] [autoit]GUICreate('MyGUI', 300, 300)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreatePic(@ScriptDir & '\Tech.bmp', 0, 0, 300, 300, $WS_CLIPCHILDREN)
$hPic = GUICtrlGetHandle(-1)
GUICtrlCreateTab(20, 20, 262, 261, $TCS_FOCUSONBUTTONDOWN)
$hTab = GUICtrlGetHandle(-1)
GUICtrlCreateTabItem('Tab 1')
GUICtrlCreateButton("",100,100,20,20)
GUICtrlCreateTabItem('Tab 2')
GUICtrlCreateTabItem('Tab 3')
GUICtrlCreateTabItem('')$hDll = DllCallbackRegister('_WinProc', 'ptr', 'hwnd;uint;wparam;lparam')
[/autoit] [autoit][/autoit] [autoit]
$pDll = DllCallbackGetPtr($hDll)
$hProc = _WinAPI_SetWindowLongEx($hTab, $GWL_WNDPROC, $pDll)_WinAPI_SetParent($hTab, $hPic)
[/autoit] [autoit][/autoit] [autoit]OnAutoItExitRegister('AutoItExit')
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]Do
[/autoit] [autoit][/autoit] [autoit]
Until GUIGetMsg() = -3Func _CreateClipRgn($hWnd)
[/autoit] [autoit][/autoit] [autoit]Local $tRect
[/autoit] [autoit][/autoit] [autoit]
Local $Count = _GUICtrlTab_GetItemCount($hWnd)
Local $Sel = _GUICtrlTab_GetCurSel($hWnd)
Local $hRgn = _WinAPI_CreateRectRgn(0, 0, 0, 0)
Local $hTmp, $HtFor $i = 0 To $Count - 1
[/autoit] [autoit][/autoit] [autoit]
$tRect = _GUICtrlTab_GetItemRectEx($hWnd, $i)
If $i = $Sel Then
$hTmp = _WinAPI_CreateRectRgn(DllStructGetData($tRect, 1) - 2, DllStructGetData($tRect, 2) - 2, DllStructGetData($tRect, 3) + 2, DllStructGetData($tRect, 4))
$Ht = DllStructGetData($tRect, 4) - DllStructGetData($tRect, 2) + 2
Else
If $i = $Count - 1 Then
$hTmp = _WinAPI_CreateRectRgn(DllStructGetData($tRect, 1), DllStructGetData($tRect, 2), DllStructGetData($tRect, 3) - 2, DllStructGetData($tRect, 4))
Else
$hTmp = _WinAPI_CreateRectRgn(DllStructGetData($tRect, 1), DllStructGetData($tRect, 2), DllStructGetData($tRect, 3), DllStructGetData($tRect, 4))
EndIf
EndIf
_WinAPI_CombineRgn($hRgn, $hRgn, $hTmp, $RGN_OR)
_WinAPI_DeleteObject($hTmp)
Next
$tRect = _WinAPI_GetClientRect($hWnd)
$hTmp = _WinAPI_CreateRectRgn(DllStructGetData($tRect, 1), DllStructGetData($tRect, 2) + $Ht, DllStructGetData($tRect, 3) - 2, DllStructGetData($tRect, 4) - 1)
_WinAPI_CombineRgn($hRgn, $hRgn, $hTmp, $RGN_OR)
_WinAPI_DeleteObject($hTmp)
Return $hRgn
EndFunc ;==>_CreateClipRgnFunc _WinProc($hWnd, $iMsg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
Local Const $WM_PRINTCLIENT = 0x0318
If _WinAPI_IsThemeActive() Then
Switch $iMsg
Case $WM_ERASEBKGND
Local $tRect[2]
Local $hParent = _WinAPI_GetParent($hWnd)
Local $hRgn = _CreateClipRgn($hWnd)
Local $hPrev = _WinAPI_GetClipRgn($wParam)
$tRect[0] = _WinAPI_GetWindowRect($hParent)
$tRect[1] = _WinAPI_GetWindowRect($hWnd)
_WinAPI_ExtSelectClipRgn($wParam, $hRgn, $RGN_DIFF)
_WinAPI_DrawBitmap($wParam, DllStructGetData($tRect[0], 1) - DllStructGetData($tRect[1], 1), DllStructGetData($tRect[0], 2) - DllStructGetData($tRect[1], 2), _SendMessage($hParent, $STM_GETIMAGE))
_WinAPI_SelectClipRgn($wParam, $hPrev)
_WinAPI_DeleteObject($hRgn)
Return 1
Case $WM_PAINT
Local $tPaint
Local $hDC = _WinAPI_BeginPaint($hWnd, $tPaint)
Local $hRgn = _CreateClipRgn($hWnd)
_WinAPI_ExtSelectClipRgn($hDC, $hRgn, $RGN_AND)
_WinAPI_CallWindowProc($hProc, $hWnd, $WM_PRINTCLIENT, $hDC, $PRF_CLIENT)
_WinAPI_DeleteObject($hRgn)
_WinAPI_EndPaint($hWnd, $tPaint)
Return 0
EndSwitch
EndIf
Return _WinAPI_CallWindowProc($hProc, $hWnd, $iMsg, $wParam, $lParam)
EndFunc ;==>_WinProcFunc AutoItExit()
[/autoit]
_WinAPI_SetWindowLongEx($hTab, $GWL_WNDPROC, $hProc)
DllCallbackFree($hDll)
EndFunc ;==>AutoItExit -
Erstmal ein fettes Lob von mir! Sieht echt klasse aus und funktioniert auch super.
Noch ein paar wichtige Funktionen aus Scite einbauen und es könnte eine richtige Konkurrenz werden.PS: Ich habe noch den Bug gefunden, dass beim zweiten Start des Programms bereits die Trophäe "Die ersten 30 Minuten",
oder wie auch immer die heißt, freigeschaltet wurde, obwohl ich es gerade mal 10 Minuten offen hatte. -
Ok, danke habs hinbekommen. Musste die Includes anpassen