Español
Fuente/ Codesnippets

Fensterformen Ventana principal Verschiedene

 

KompilierenMarcaSeparación
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Hauptfenster: verschiedene Fensterformen
+----------------------------------------------------------+
| combrgn.prf                                              |
| Autor: Sebastian König                                   |
| email: feedback@sekoenig.de                              |
| Homepage: http://www.sekoenig.de                         |
| Spielereien mit CombineRgn()                             |
+----------------------------------------------------------+
+===================================================+
# Dieser Quelltext baut auf Code aus PRFellow 99    #
# von Thomas Hölzer auf. An dieser Stelle noch      #
# mal vielen Dank und ein grosses Lob an den        #
# Autor!                                            #
#                                                   #
# Mehr zu PRFellow gibt`s unter:                    #
# http://prfellow.home.pages.de                   #
+===================================================+
--Benötigte Funktionen
DEF SetWindowRgn(3) !USER32,SetWindowRgn
DEF CreateEllipticRgn(4) !GDI32,CreateEllipticRgn
DEF CreateRectRgn(4) !GDI32,CreateRectRgn
DEF CreatePolyRgn(3) !GDI32,CreatePolygonRgn
DEF CombineRgn(4) !GDI32,CombineRgn
DEF DeleteObject(1) !GDI32,DeleteObject
--Deklarationen
declare DEST&,SOURCE1&,SOURCE2&                für CombineRgn()
---Neues Fenster erstellen
windowstyle 16
window 0,0-400,400
windowtitle ...
Jetzt geht`s los...
---Fenster mit eckigem Loch
SetWindowPos %hwnd=0,0-400,400                   Fenster anpassen
windowtitle Eckiges Loch
cls 0                                            Damit das Ergebnis besser
sichtbar wird
TextColor @RGB(31,31,31),-1
DrawText 1,1,Mausklick = Weiter
let DEST&    = CreateRectRgn(0,0,0,0)            Die neue Region mit 0 initialisiern
let SOURCE1& = CreateRectRgn(0,0,400,400)        Die 1. der beiden zu kombinierenden
Regionen
let SOURCE2& = CreateRectRgn(100,100,300,300)    ...und die 2.
CombineRgn(DEST&,SOURCE1&,SOURCE2&,3)            Die beiden Regionen werden kombiniert
und das Ergebnis wird in
DEST& gespeichert
SetWindowRgn(%hwnd,DEST&,1)                      Nun ändern wir nur noch die Region
des Fensters...
waitinput   warten...
---Fenster mit rundem Loch
SetWindowPos %hwnd=%winLeft,%winTop-400,400
windowtitle Rundes Loch
cls 0
TextColor @RGB(31,31,31),-1
DrawText 1,1,Mausklick = Weiter
let DEST&    = CreateRectRgn(0,0,0,0)
let SOURCE1& = CreateRectRgn(0,0,400,400)             |
let SOURCE2& = CreateEllipticRgn(100,100,300,300)     |
>  siehe oben...
CombineRgn(DEST&,SOURCE1&,SOURCE2&,3)                 |
|
SetWindowRgn(%hwnd,DEST&,1)                          /
waitinput   und wieder warten...
---Fenster, das in 2 Hälften geteilt ist
SetWindowPos %hwnd=%winLeft,%winTop-400,400
windowtitle Geteiltes Window
cls 0
TextColor @RGB(31,31,31),-1
DrawText 1,1,Mausklick = Weiter
let DEST&    = CreateRectRgn(0,0,0,0)
let SOURCE1& = CreateRectRgn(0,0,170,400)             |
let SOURCE2& = CreateRectRgn(230,0,400,400)           |
>  siehe oben...
CombineRgn(DEST&,SOURCE1&,SOURCE2&,3)                 |
|
SetWindowRgn(%hwnd,DEST&,1)                          /
waitinput   das übliche...
---Auch geteilt, nur anders....
SetWindowPos %hwnd=%winLeft,%winTop-400,400
windowtitle Geteiltes Window, die 2.
cls 0
TextColor @RGB(31,31,31),-1
DrawText 1,1,Mausklick = Weiter
let DEST&    = CreateRectRgn(0,0,0,0)
let SOURCE1& = CreateRectRgn(0,0,200,200)             |
let SOURCE2& = CreateEllipticRgn(200,200,400,400)     |
>  siehe oben...
CombineRgn(DEST&,SOURCE1&,SOURCE2&,3)                 |
|
SetWindowRgn(%hwnd,DEST&,1)                          /
waitinput   und wieder...
---Schlüsselloch-Fenster
SetWindowPos %hwnd=%winLeft,%winTop-200,300
windowtitle ...     Sieht man eh´ nicht ganz...
cls 0
TextColor @RGB(31,31,31),-1
DrawText 33,1,Mausklick = Weiter
let DEST&    = CreateRectRgn(0,0,0,0)
let SOURCE1& = CreateEllipticRgn(0,0,200,200)         |
let SOURCE2& = CreateRectRgn(50,100,150,400)          |
>  siehe oben...
CombineRgn(DEST&,SOURCE1&,SOURCE2&,2)                 |
|
SetWindowRgn(%hwnd,DEST&,1)                          /
waitinput   was auch sonst?
---4-geteiltes-Fenster
SetWindowPos %hwnd=%winLeft,%winTop-400,400
windowtitle 4-geteiltes-Fenster
cls 0
TextColor @RGB(31,31,31),-1
DrawText 1,1,Mausklick = Ende
let DEST&    = CreateRectRgn(0,0,0,0)
let SOURCE1& = CreateRectRgn(0,0,170,400)        |
let SOURCE2& = CreateRectRgn(230,0,400,400)       > siehe oben...
|
CombineRgn(DEST&,SOURCE1&,SOURCE2&,2)            /
jetzt wird es anders:
let SOURCE1& = DEST&                            wir speichern DEST in SOURCE1,
let SOURCE2& = CreateRectRgn(0,170,400,230)     erstellen noch eine Region...
CombineRgn(DEST&,SOURCE1&,SOURCE2&,4)           ...und kombinieren ein 2. Mal
SetWindowRgn(%hwnd,DEST&,1)                     ab jetzt wieder alles wie oben...
waitinput   auch das bleibt gleich...
---Und das war`s...
DeleteObject(DEST&)                             wir geben die erstellten Regionen
DeleteObject(SOURCE1&)                          wieder frei
DeleteObject(SOURCE2&)                          (Dank an Christian Zietz)
end
 
16.07.2007  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.408 Views

Untitledvor 0 min.
Thomas Freier26.01.2024
Peter Max Müller22.10.2017
Tommy16.03.2015
Paul Glatz19.08.2013

Themeninformationen

Dieses Thema ha 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie