BMAX Fenster beskinnen

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

oware

Betreff: BMAX Fenster beskinnen

BeitragSa, Jun 23, 2007 12:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi


Ich weiß jetzt nicht wirklich ob hier schonmal diese Fragen gestellt wurden, zumindest habe ich sie nicht gefunden:

1. Wie kann man den Fensterrahmen einer BMAX App entfernen?
2. Wie kann man die App ins SysTray minimieren?

thx in adv
oware
www.myspace.com/oliverpuetz -> Mein Instrumentalprojekt

d-bug

BeitragSa, Jun 23, 2007 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
zu 1.

Code: [AUSKLAPPEN]
Const HTCAPTION = 2

Local skinPmap:TPixmap = LoadPixmapPNG(Deine Lustige Pixmap.png")
If skinPmap = Null Then RuntimeError "Pixmap nicht gefunden"

Local window:TGadget = CreateWindow("", 100, 100, skinPmap.width, skinPmap.height, Null, WINDOW_HIDDEN)
SetWindowMask (window, skinPmap)

Local panel:TGadget = CreatePanel (0,0,skinPmap.width,skinPmap.height,window,PANEL_ACTIVE)
SetPanelPixmap (panel,skinPmap)
ShowGadget(window)
 
'Maskenfunktion für MAXGUI-Fenster ----------------------
Rem
   bbdoc:      Pixmap-Maske für ein Fenster setzen
End Rem
Function SetWindowMask (Gadget:TGadget, pixmap:TPixmap)
   Local rectRgn = CreateRectRgn(0, 0, GadgetWidth(Gadget), GadgetHeight(Gadget))
   Local hwnd:Int = Gadget.Query(QUERY_HWND)
   For Local pixY=0 Until pixmap.height
      Local startFlag = 0
      Local startX = 0
      Local maskLine, pixX
      For pixX=0 Until pixmap.width
         Local argb = ReadPixel(pixmap, pixX, pixY)       
         If argb & $ff000000 = 0
            If startFlag = 0
               startFlag = 1
               startX = pixX
            EndIf
         Else
            If startFlag
               startFlag = 0
               maskLine = CreateRectRgn(startX, pixY, pixX, pixY + 1)
               CombineRgn(rectrgn, rectrgn, maskLine, 3)
               DeleteObject(maskLine)
            EndIf
         EndIf          
      Next
      If startFlag
         maskLine = CreateRectRgn(startX, pixY, pixX, pixY + 1)
         CombineRgn(rectrgn, rectrgn, maskLine, 3)
         DeleteObject(maskLine)
      EndIf
   Next
   SetWindowRgn(hWnd, rectrgn, True)
End Function



'TEST ---------------------------------------------
Repeat
   Select WaitEvent()

      Case EVENT_MOUSEDOWN
         ReleaseCapture()
         SendMessageA(QueryGadget(window, QUERY_HWND), WM_NCLBUTTONDOWN, HTCAPTION, Null)


      Case EVENT_KEYDOWN
         If CurrentEvent.data = 27 Then End
      
   End Select
Forever

End
  • Zuletzt bearbeitet von d-bug am Sa, Jun 23, 2007 13:02, insgesamt einmal bearbeitet

oware

BeitragSa, Jun 23, 2007 13:01
Antworten mit Zitat
Benutzer-Profile anzeigen
danke!
www.myspace.com/oliverpuetz -> Mein Instrumentalprojekt
 

#Reaper

Newsposter

BeitragSa, Jun 23, 2007 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ömhh.. bei mir gibt es die Funktion CreateRectRgn nicht..? :-/
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

d-bug

BeitragSa, Jun 23, 2007 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
   Extern "Win32"
      Function SetWindowRgn(hWnd, hRgn, bRedraw)
      Function CreateRectRgn(nLeftRect, nTopRect, nRightRect, nBottomRect)
      Function CombineRgn(hrgnDest, hrgnSrc1, hrgnSrc2, fnCombineMode)
   End Extern


Bitte schön...
 

#Reaper

Newsposter

BeitragSa, Jun 23, 2007 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
d-bug hat Folgendes geschrieben:
Code: [AUSKLAPPEN]
   Extern "Win32"
      Function SetWindowRgn(hWnd, hRgn, bRedraw)
      Function CreateRectRgn(nLeftRect, nTopRect, nRightRect, nBottomRect)
      Function CombineRgn(hrgnDest, hrgnSrc1, hrgnSrc2, fnCombineMode)
   End Extern


Bitte schön...


Ok, danke, sorry Embarassed
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group