Blitzsys - PositionWindow
Übersicht

![]() |
EingeproggtBetreff: Blitzsys - PositionWindow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo
Mein neues Problem ist einfach und spezifisch zugleich... Also ich will ein in BlitzPlus Rahmenlos gemachtes Fenster mittels PositionWindow aus der blitzsys bewegen. Dabei fängt das Fenster am Desktop an zu ruckeln. Liegt an meiner Positionsberechnung, nur weiss ich nicht, wie es besser gehen könnte. (Das Problem hätte ich auch bei 2d oder 3d, deshalb -> Allgemein) Code: [AUSKLAPPEN] ;Beim Laden winhandle=DLLFindWindow("Mein Titel") ;Auch mit blitzsys, funzt schon ;In der Schleife altmx=mx : altmy=my mx=MouseX() : my=MouseY() ;DLLGetWindowX und DLLGetWindowY sind ebenfalls aus der blitzsys DLLPositionWindow(winhandle,DLLGetWindowX(winhandle)-(altmx-mx),DLLGetWindowY(winhandle)-(altmy-my)) Bitte um Verbesserungen. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du brauchst da eigendlich nichs selber berechnen, dass kann die BlitzSys (v.1.05) schon alleine. Hier mal ein BeispielCode: [AUSKLAPPEN] Graphics3D 320,240,0,2
SetBuffer BackBuffer() camera=CreateCamera() PositionEntity camera,0,0,-4 TurnEntity CreateLight(),-160,-30,0 cube=CreateCube() MoveEntity cube,-2,0,0 Include "blitzsys.bb" If DLLBlitzSysInitialise()<105 RuntimeError("blitzsys.dll nicht gefunden") Global hWnd=DLLFindBlitzRuntimeHwnd("") DLLSetWindowZOrder(hWnd,HWND_NOTOPMOST) DLLSetWindowRgn(hWnd,DLLCreateRectRgn(DLLGetClientAreaX(hWnd),DLLGetClientAreaY(hWnd),DLLGetClientAreaWidth(hWnd),DLLGetClientAreaHeight(hWnd)),True) While Not KeyHit(1) If MouseHit(1) DLLSystemMoveWindow(hWnd) TurnEntity cube,0,0,1 UpdateWorld RenderWorld Text 20,20,"Window X: "+DLLGetWindowX(hWnd) Text 20,40,"Window Y: "+DLLGetWindowY(hWnd) Text 20,60,"Window Width: "+DLLGetWindowWidth(hWnd) Text 20,80,"Window Height: "+DLLGetWindowHeight(hWnd) Flip Wend DLLSetWindowRgn(hWnd,0,False) DLLDeleteObject(iBothcubes) End |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke,
Deine Methode funktioniert einwandfrei, ich bediente mich jedoch dieser Funktion: https://www.blitzforum.de/foru...=beskinnen |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, die Dll habe ich auch schon lange, aber auch ein Problem mit dieser sind folgende Hard-Coded-Variablen
Code: [AUSKLAPPEN] xoffset=-3
yoffset=-22 Vielleicht hast du dazu schon eine Lösung gefunden, wenn nicht, wirst du feststellen, dass diese Werte bei unterschiedlichen Windowseinstellungen anders lauten müssen. Mit anderen Worten, was bei dir gut aussieht, ist bei jemand anderem wieder ganz verschoben. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Offsets speichern doch, wie weit der linke obere Pixel des Fensters von der linken oberen Ecke des Client-Bereichs entfernt ist.
Mit der WinAPI-Funktion AdjustWindowRect lässt sich dieser Offset berechnen. Dabei werden auch die Windowseinstellungen und das Theme berücksichtigt. |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, ich weiß was das offset macht... Das mit ''AdjustWindowRect'' hat mir aber keiner gesagt und ist so nicht im Beispielcode drin, was den Code recht sinnlos macht, da es keine Blitzbefehle sind, und man so recht aufgeschmissen ist. Wenn es mit der API geht, dann ist ja alles wieder gut. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group