Screensaver Vorschau
Übersicht BlitzBasic
 BlitzBasic  Allgemein
 Allgemein|   | hazumu-kunBetreff: Screensaver Vorschau |  Di, Mai 11, 2010 23:01 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 |  Di, Mai 11, 2010 23:46 Antworten mit Zitat   | 
|---|---|---|
| SystemProperty  kann das Window Handle ausgeben. | ||
| Starfare: Worklog, Website (download) | ||
|   | hazumu-kun |  Di, Mai 11, 2010 23:53 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 |  Di, Mai 11, 2010 23:55 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 |  Di, Mai 11, 2010 23:57 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 |  Mi, Mai 12, 2010 0:14 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 |  Mi, Mai 12, 2010 0:18 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 |  Mi, Mai 12, 2010 2:11 Antworten mit Zitat   | |
|---|---|---|
| Kannst deinen Screensaver gleich noch um ein Preview-Fenster erweitern  b3dScr_preview.zip (Author ???) | ||
|   | hazumu-kun |  Mi, Mai 12, 2010 6:59 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 |  Mi, Mai 12, 2010 10:29 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  ("AppHWND") und mit BlitzPlus QueryObject(fenster) zu bekommen. 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 |  Mi, Mai 12, 2010 19:49 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!  Aber allerdings dauert es im Bildschirmschoner Auswahlmenü sehr lange vom Custom-Screensaver zu einem anderen zu wechseln. | ||
| 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 |  Fr, Mai 14, 2010 11:19 Antworten mit Zitat   | 
|---|---|---|
| also sowas wie mousemove und mousedown müsste blitz doch von haus aus können o.O | ||
|   | hazumu-kun |  Fr, Mai 14, 2010 11:44 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
 BlitzBasic
 BlitzBasic  Allgemein
 Allgemein
					Powered by phpBB © 2001 - 2006, phpBB Group
				



