Screensaver Vorschau
Übersicht

![]() |
hazumu-kunBetreff: Screensaver Vorschau |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Codergemeinde,
aktuell programmiere ich an einem Bildschirmschoner, bin auch soweit fertig, brauche aber nurnoch ein bisschen Grundlagenforschung zum Thema Vorschau. Wenn man in Windows einen Bildschirmschoner auswählt läuft ja in dem kleinem Monitorrahmen eine Vorschau, ich weiß dass mein Bildschirmschoner dann mit dem Parameter /p xxxxx (xxxxx ist ein Windows Fensterhandle) gestartet wird, wie schaffe ich es nun auf dieses übergebene Fenster meine Vorschau draufzuzeichnen? WinAPI Funktionen scheinen vonnöten, aber ich habe keine Ahnung welche nun. Danke für eure Hilfe, wenn ich fertig bin wirds auf jeden Fall geil aussehen ![]() |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
- Zuletzt bearbeitet von hazumu-kun am Mi, Mai 12, 2010 0:01, insgesamt einmal bearbeitet
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
SystemProperty![]() |
||
Starfare: Worklog, Website (download) |
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das hilft mir nur nichst, ich brauche eine Funktion die mich mit dem Handle arbeiten lässt das ich VON Windows übergeben bekomme. Ich muss praktisch ein Child-Window zu dem übergebenem Parent-Handle erstellen und darein zeichnen. | ||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
- Zuletzt bearbeitet von hazumu-kun am Di, Mai 11, 2010 23:55, insgesamt einmal bearbeitet
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
An den Zeichenkontext würdest du sicherlich noch relativ einfach rankommen. Aber BB klarmachen, dass er bei der Grafikausgabe nun dieses Kontext benutzen soll halte ich für unmöglich. | ||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Idee ist ja dem Handle ein Child-Window anzuhängen und dadrin per Canvas zu zeichnen.
Um das zu testen brauche ich aber eine Funktion, die mich ein Fenster an beliebige Parents anhängen lässt. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
![]() |
The Shark |
![]() Antworten mit Zitat ![]() |
---|---|---|
das kannst du vergessen. Ich hatte mal ein ähniches problem, bei dem es darum ging Buttons in die Taskleiste zu setzten. Das Problem ist, dass Blitz nicht mit api-handles arbeitet sondern mit eigenen.
Würde man die Struktur kennen, könnte man vllt ein window erstellen und "umbiegen", indem man in den Blitzhandles rumpfuscht. Ob das geht, keine ahnung, aber ich würds auch nicht empfehlen. |
||
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sehr tragisch, dass ausgerechnet so ein toller Screensaver keine Vorschau bieten kann, nunden, ich mach mich dann mal dran den Konfigurationsdialog zu erstellen und ansonsten seht ihr das Ding Ende der Woche im Projekte Thread oder Showcase.
BTW: Es geht um eine Virtuelle Glasfaserleuchte, richtig hübsch mit Farbwechsel undso. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
chi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kannst deinen Screensaver gleich noch um ein Preview-Fenster erweitern ![]() |
||
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sehr vielen dank ![]() Vielleicht läuft es ja auch mit BlitzPlus! |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Um mal für die Nachwelt, wenn der Download mal down ist, was aufzubereiten
Aus screen1.bb: BlitzBasic: [AUSKLAPPEN] Const GWL_STYLE = -16 hParent ist das übergebene handle. Zeile A: Graphics/Graphics3D in B3D, in B+ ein Fenster ohne Titelleiste oder ähnlichem erstellen und ein Canvas auf die volle Größe Zeile B: blitz_hnd wäre mit B3D SystemProperty ![]() Dann wird da noch ein bisschen mit dem Event-Handler angegeben. Die müssten allerdings normal abzufragen sein: in B+ über WaitEvent und in B3D wird das ja automatisch gemacht |
||
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Den Code vom Eventhandler solltest du hier noch beischreiben, weil es um winapi events geht, und blitz die nativ nicht abfragen kann.
Das hier einmal pro Mainloop Durchgang ausführen: Code: [AUSKLAPPEN] Function eventHandler() While api_PeekMessage(w_message,0,0,0,1) api_TranslateMessage(w_message) If hParent Then Select w_message\message Case WM_DESTROY: api_PostQuitMessage(0) Case WM_CLOSE: ExitScreensaver() Default: api_DefWindowProc(w_message\hwnd,w_message\message,w_message\wParam,w_message\lParam) End Select Else Select w_message\message Case WM_DESTROY: api_PostQuitMessage(0) Case WM_CLOSE: ExitScreensaver() Case WM_MOUSEMOVE: pt.POINT = New POINT api_GetCursorPos(pt) If Abs(pt\x-orig_pt\x)>10 Or Abs(pt\y-orig_pt\y)>10 Then api_PostMessage(w_message\hwnd,WM_CLOSE,0,0) EndIf Case WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_MBUTTONDOWN, WM_KEYDOWN, WM_SYSKEYDOWN, WM_MOUSEWHEEL: api_PostMessage(w_message\hwnd,WM_CLOSE,0,0) Default: api_DefWindowProc(w_message\hwnd,w_message\message,w_message\lParam,w_message\wParam) End Select EndIf Wend Return True End Function Hier noch die Konstanten die benutzt werden: Code: [AUSKLAPPEN] Const GWL_STYLE = -16 Const GWL_HWNDPARENT = -8 Const WS_VISIBLE = $10000000 Const WS_CHILD = $40000000 Const WM_DESTROY = $0002 Const WM_CLOSE = $0010 Const WM_KEYDOWN = $0100 Const WM_SYSKEYDOWN = $0104 Const WM_MOUSEMOVE = $0200 Const WM_LBUTTONDOWN = $0201 Const WM_RBUTTONDOWN = $0204 Const WM_MBUTTONDOWN = $0207 Const WM_MOUSEWHEEL = $020A p.s.: Es funktioniert! ![]() |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
also sowas wie mousemove und mousedown müsste blitz doch von haus aus können o.O | ||
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
DAS schon, aber der Kram mit WM_Close und WM_Destroy ist auch wichtig, und im Grunde alles ohne Mouse events. | ||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group