Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

rahmenlose Fenster:durchsichtige Flächen und beliebige Größe

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
-schumi-



Anmeldungsdatum: 28.10.2009
Beiträge: 131
Wohnort: Südbayern

BeitragVerfasst am: 23.02.2010, 20:36    Titel: rahmenlose Fenster:durchsichtige Flächen und beliebige Größe Antworten mit Zitat

Hallo zusammen!

Ich habe in letzter Zeit versucht grafisch möglichst ansprechende Programme zu gestalten, und dabei die Windows-Bibliothek verwendet (#Include "windows.bi")...
Fand vor allem die rahmenlosen Fenster sehr originell


Jetzt hab ich 2 Fragen:

1. Kann ich irgendwie rausfinden, welches Bild sich hinter dem Fenster befindet? (um durchsichtige Flächen darzustellen)

2. Wie kann ich die größe des RAHMENLOSEN Fensters beliebig in Pixel angeben. Ich kenne nur die Methode mit dem screen-Befehl, und da sind nur feste Größen wie 320x240 usw. möglich..
Das mit screenres funktioniert nur mit Rahmen neutral

MFG
-schumi-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Stueber



Anmeldungsdatum: 07.07.2008
Beiträge: 202

BeitragVerfasst am: 23.02.2010, 21:17    Titel: Antworten mit Zitat

Wie erstellst du denn das Rahmenlose Fenster ohne die Größe anzugeben?
Irgendwo hast du doch CreateWindow stehen, da muss dann auch die Größe sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 23.02.2010, 23:56    Titel: Antworten mit Zitat

Unsinn. Warum sollte man mit ScreenRes keine rahmenlosen Fenster erzeugen können? Du kannst damit, genau wie auch bei Screen, transparente Fenster erzeugen, ohne irgendwie selbst die Bilddaten "dahinter" auslesen zu müssen.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
-schumi-



Anmeldungsdatum: 28.10.2009
Beiträge: 131
Wohnort: Südbayern

BeitragVerfasst am: 24.02.2010, 19:21    Titel: Antworten mit Zitat

@Stueber:

hab noch nichts von createwindow gehört... (fast schon peinlich geschockt )

Bis jetz hab ich das mit dem Fenstererstellen immer so gemacht:
(erstellt ein Rahmenloses Fenster und lädt ein Bild. Das Fenster kann man dann wie ein normales Fenster mit Rahmen verschieben)
Code:

#Include "windows.bi"
DIM AS INTEGER forx, mxpos, mypos, ltaste, altmxpos, altmypos, fxpos, fypos
Dim As String titel="Rahmenlos"
WindowTitle titel
Screen 14,32,,8

fxpos=100 'steht für FensterXPOS
fypos=100

SetWindowPos FindWindow(0, titel),0,fxpos,fypos,0,0,SWP_NOSIZE

BLOAD "C:\Simon\Basic\fb\files\fenstertest.bmp"
DO
    GETMOUSE mxpos, mypos, ,ltaste 'MausXPOS, MausYPOS und LinkeTASTE
    IF mypos<20 and ltaste=1 and mypos>0 Then  'Falls man in die obere Leiste klickt...
        altmxpos=mxpos
        altmypos=mypos
        DO   
            DO
                GETMOUSE mxpos, mypos, ,ltaste
            LOOP UNTIL ltaste=0 or mxpos<>altmxpos or mxpos<>altmxpos
            IF mxpos=-1 THEN mxpos=altmxpos: mypos=altmypos
       
            IF altmxpos<>mxpos or altmypos<>mypos THEN
                fxpos=fxpos+(mxpos-altmxpos)
                fypos=fypos+(mypos-altmypos)
                SetWindowPos FindWindow(0, titel),0,fxpos,fypos,0,0,SWP_NOSIZE
            END IF
        LOOP UNTIL ltaste=0   
    END IF
LOOP UNTIL INKEY$<>""

(fenstertest.bmp kann natürlich ein beliebiges 320x240 Bild sein oder die Zeile einfach rauslöschen)

@Jojo:

Kannst du mir 1-2 Codebeispiele geben? (falls du Zeit und Lust hast natürlich, sonst such im mir das selbst raus..)

MFG
-schumi-

ps: hab grad erst mit der Windowsbibliothek angefangen, also nicht wundern wenn miene Codes ein wenig seltsahm aussehen... zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Stueber



Anmeldungsdatum: 07.07.2008
Beiträge: 202

BeitragVerfasst am: 24.02.2010, 19:37    Titel: Antworten mit Zitat

Wenn du mit der Winapi anfängst sind aber screen und windowtitle fehl am Platz.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
-schumi-



Anmeldungsdatum: 28.10.2009
Beiträge: 131
Wohnort: Südbayern

BeitragVerfasst am: 24.02.2010, 19:49    Titel: Antworten mit Zitat

wie gesagt: bin noch anfänger (was WinAPI angeht)

screen und windowtitle werden schon noch verschwinden...

(les mir grad das WinAPI Tuturial von MOD durch, is wirklich ganz schön umfangreich)

MFG
-schumi-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 24.02.2010, 20:02    Titel: Antworten mit Zitat

[richtigstellung]

Das Tutorial wurde von Lutz_Ifer erstellt, ich hab es nur aktualisiert.

[/richtigstellung]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 24.02.2010, 22:04    Titel: Antworten mit Zitat

Du kannst bei ScreenRes genau die selben attribute wie bei Screen verwenden. Die Parameter haben halt andere Bedeutung, aber die Flags (durchsichtig + kein rahmen) sind dieselben.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz