unsichtbares Fenster? *erledigt*

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

EPS

Betreff: unsichtbares Fenster? *erledigt*

BeitragFr, März 25, 2005 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi...

mittels BlitzSys kann man ja Fenster sozusagen "unsichtbar" machen und stattdessen z.B. ein Bild verwenden, z.B. um bei einem Programmstart ein Logo einzublenden welches sogar etwas unförmig sein kann.

mir geht es hierbei um die BlitzSys Befehle:

DLLCreatePolygonVertexArray()
DLLSetPolygonVertexPoint()
DLLCreatePolygonRgn()
DLLSetWindowRgn()

Ich wollte mal fragen ob jemand einen direkten Weg kennt mittels decls bzw. DLL das direkt in Blitz+ zu machen ohne den Wrapper von BlitzSys.

Vielen Dank schon mal.
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.
  • Zuletzt bearbeitet von EPS am Sa, März 26, 2005 23:52, insgesamt einmal bearbeitet
 

Ensign Joe

BeitragFr, März 25, 2005 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
EDIT: ach kagge, den beitrag net durchgelesen, das passt jetzt wohl net so abba egal Very Happy

ich weiß jetzt nicht wie das geht weil ich BB+ nicht habe. Aber ich habe dir hier nen Image Processor for BB+ geproggt Very Happy

Der öffnet die Datei "splash.bmp" oder "splash.gif" oder "splash.jpg", jenachdem welche vorhanden ist. Ka wie man in VB params übergibt.

das fenster hat automatisch die größe des bildes und ist zentriert. einfach in den folder kopieren in dem die splash ist und ausführen oder halt mit execfile oder wie das heißt ausführen Wink

Download

Update: Der splash beendet sich nach 5 Sekunden selbst (also das fenster geht zu und die app auch), falls die datei net existiert gibts nen runtime error und die app is zu
Ich habe jetzt eine Pommesbude aufgemacht am Münchner Hauptbahnhof.
Und da ich Herbert Görgens heiße, heißt diese Pommesbude
Herbert's Pommesbude Smile

EPS

BeitragFr, März 25, 2005 21:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Mühe, aber das ist nicht ganz was ich suche, denn ich beabsichtige kein Viereckiges Bild über ein Fenster zu legen, sondern ich möchte ein - naja sagen wir mal unförmiges Fenster haben ...

So wie z.B. bei diesem Winamp-Player:

http://www.winamp.com/skins/details.php?id=144328

Das wäre mit der BlitzSys problemlos möglich, jedoch finde ich es Quatsch einen Wrapper zu benutzen, wenn man auch direkt auf die entsprechende DLL zugreifen kann.

Vorausgesetzt halt man weis auf welche und wie Confused

ich hoffe das war verständlicher...
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

hamZta

Administrator

BeitragSa, März 26, 2005 1:40
Antworten mit Zitat
Benutzer-Profile anzeigen
hab hier eine "skin.dll" mit der ist das möglich.

beispiel liegt in der zip dabei

Hier (39 kb)
Blog.

EPS

BeitragSa, März 26, 2005 2:24
Antworten mit Zitat
Benutzer-Profile anzeigen
@hamZta

jep...das ist exakto was ich suche.

2 Fragen noch...

1. Geht das auch als Direktaufruf ohne die extra DLL, oder ist die unbedingt notwendig? Anders ausgedrückt: Um diesen Effekt zu erzielen, kann man da SystemDLLs benutzen die man mittels decls ansprechen kann oder steckt in der skin.dll ein bestimmter Code damit das ganze funzt.

2. Wie siehts mit der verwendung dieser DLL aus - Rechtemäßig?

Auf jeden Fall schon mal DANKE
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

EPS

BeitragSa, März 26, 2005 10:39
Antworten mit Zitat
Benutzer-Profile anzeigen
hi...also ich hab jetzt im englischen Forum ein Beispiel gefunden, nur funzt das bei mir leider nicht, hier mal der Code:

Code: [AUSKLAPPEN]
win = CreateWindow("hallo",100,100,300,200,Desktop())
img = LoadImage("c:\post\test.png")

skin_window(win,img,$FF,0,0)

Repeat
   If KeyHit(1) Then Exit
Forever

Function skin_window(window, img, r, g, b)

   w = ImageWidth(img)
   h = ImageHeight(img)
   LockBuffer ImageBuffer(img)
   mask = (255 Shl 24) + (r Shl 16) + (g Shl 8) + b

   hWnd = QueryObject(window, 1)
   hRgn = api_CreateRectRgn(0, 0, w, h)
   For y = 0 To h - 1
      For x = 0 To w - 1
         pixel = ReadPixelFast(x, y, ImageBuffer(img))
         If pixel = mask
            hTempRgn = api_CreateRectRgn(x, y, x + 1, y + 1)
            api_CombineRgn(hRgn, hRgn, hTempRgn, 3)
            api_DeleteObject(hTempRgn)
         EndIf
      Next
   Next
   UnlockBuffer ImageBuffer(img)
   
   api_SetWindowRgn(hWnd, hRgn, True)
   api_DeleteObject(hRgn)

End Function


Ich sehe leider nur das normale Fenster...hat jemand ne Ahnung warum?

Mein Bild ist richtig und die notwendigen decls Deklarationen sind auch vorhanden.
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

EPS

BeitragSa, März 26, 2005 23:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Erledigt: siehe Code Archiv:

https://www.blitzforum.de/view...590#113590
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group