Deutsch
Forum

Fenster ohne Titelzeile und ohne Menü trotzdem verschieben?

 
- Seite 1 -



Edwin
Camdzic
Hi,

mich hat das Vista Design so fasziniert, dass ich es in meine XP-Programme einbauen will. Aber es hängt da scho ganz am Anfang. Denn den Aero Effekt habe ich schon hinbekommen, man kann dafür aber das Fenster nicht verschieben (blöd). Jetzt bräuchte ich bitte einen, der mir sagt wie ich ein Fenster ohne Titelzeile und ohne Menüleiste verschieben kann. Bin für jede Hilfe dankbar.

Danke im Vorraus!

Um Aero hinzubekommen, benutzt das Fenster den Desktop als Hintergrund. Wenn man das Fenster jetzt verschieben würde, so würde doch der Hintergrund der alte sein und sich nicht aktualisieren? Kann man dagegen auch etwas machen?

bye
 
06.04.2007  
 



 
- Seite 2 -



Edwin
Camdzic
Hi,

Ok, habe verstanden und werde mich daran halten!

Sry, nacher ist einem immer alles klar. (respect gutes Bsp.)

%% krieg keine gute Box wie ihr hin %%
KompilierenMarkierenSeparieren
Windowstyle 112
window 200,200 - 583,397
loadbmp C:\_ground.bmp ,0,0;-1
Def ReleaseCapture(0) !USER32,ReleaseCapture
Declare ende%
Print         Fenster mit Linksklick bewegen - Rechtsklick beendet

Whilenot ende%

    Waitinput

    If Equ(%message,$201) 	 WM_LButtonDown

        UseCursor 5
        SendMessage(%hwnd,$112,$F012,0)
         $112: WM_SYSCOMMAND
         $F012: Undokumentierter Wert: ist besser als $0F010 (SC_MOVE)
        ReleaseCapture()	 funktioniert auch ohne, ist aber besser so
        UseCursor 0

    ElseIf Equ(%message,$204)  WM_RButtonDown

        Let ende%=1

    EndIf

Wend

End

Bild beinhaltet Weißanteile die ausgeblendet werden, und so der Desktop durchscheint

XP Home SP2, Profan 9.1

?? ausreichend ??

bye

680 kB
Kurzbeschreibung: Bild, dass geladen wird!
Hochgeladen:06.04.2007
Ladeanzahl58
Herunterladen
 
06.04.2007  
 



mach einfach statt
besser [CODE] für quelltexte - habs mal geändert bei dir...
 
06.04.2007  
 




Edwin
Camdzic
Ok, Danke!
 
06.04.2007  
 



Das Bild von dem Du redest (was leider nicht mitgeliefert ist) mag ja Weißanteile besitzen - aber diese nach dem Verschieben zu Aktualisieren wird Dir nicht gelingen da Windows selbst keine Info darüber besitzt was tatsächlich hinter dem Fenster liegt. Einzige Mgl. wäre das Ausschneiden von Fensterteilen mittels Regions. Hierbei ist aber nur eine Transparenz möglich - keine Transluzens. Unter WinXP könntest Du dann diese ausgeschnittenen Regions jedoch wiederum bedecken - mit transluzierenden Statics. Dabei kannst Du dann aber nicht mehr die Verschiebung mit der ReleaseCapture-Api nutzen - Du müsstest dann meine obige Variante für das Verschieben nutzen da Du die Statics manuell beim Verschieben nachpositionieren müsstest. (Die Variante von der Frank meint man könne sie nicht ausbauen ;) )
 
06.04.2007  
 




Edwin
Camdzic
Jetzt mit Bild!
 
06.04.2007  
 



Schau mal abgerundete Ecken:
KompilierenMarkierenSeparieren
 
06.04.2007  
 




Alfred
Wagner
Hallo Edwin
Hab ein wenig mit IF;s Code gespielt

Falls du noch eine Checkbox brauchst
KompilierenMarkierenSeparieren
def ReleaseCapture(0) !USER32,ReleaseCapture
def RoundRectRgn(6) !GDI32,CreateRoundRectRgn
def SetWindowRgn(3) !USER32,SetWindowRgn
Declare ende%,Fenstert$,Ende&,CB&,Txt$,hFont%,Text$
Windowstyle 112
window 200,200 - 583,397
loadbmp _ground.bmp ,0,0;0  ** Pfad anpassen
SetWindowRgn(%hwnd, RoundRectRgn(0,0,width(%hwnd),height(%hwnd),18,18), 1)

Proc Controls

    Fenstert$ = Hier kommt der Fenstertietel hin
    TextColor RGB($FF, $00, $00),-1  ** Blauer Text
    USEFONT Arial,22,0,1,1,0** Schriftart
    Drawtext 140,15,Fenstert$
    hFont% = @Create(Font,MS Sans Serif,13,0,0,0,0)** Schriftart
    Ende&=CREATE(BUTTON,%HWND,Ende,450,350,90,22)
    SetFont Ende&,hFont%** Schriftart für Button
    Text$ = Ich bin der Checkbox Text
    CB&= CREATE(Checkbox,%HWND,,30,100,12,12)
    TextColor RGB($00,$00,$FF),-1  ** Blauer Text
    USEFONT MS Sans Serif,13,0,0,0,0** Schriftart
    Drawtext 50,100,Text$

Endproc

Controls
** Hauptschleife
SETFOCUS(%HWND)

WHILENOT ENDE%

    WAITINPUT

    If %KEY=2

        ENDE%= 1

    ELSEIF %KEY=4

    ElseIf Equ(%message,$201) WM_LButtonDown

        UseCursor 5
        SendMessage(%hwnd,$112,$F012,0)
         $112: WM_SYSCOMMAND
         $F012: Undokumentierter Wert: ist besser als $0F010 (SC_MOVE)
        ReleaseCapture() funktioniert auch ohne, ist aber besser so
        UseCursor 0

    ElseIf Equ(%message,$204) WM_RButtonDown

        Let ende%=1

    ELSEIF GETFOCUS(Ende&) BUTTON

        ENDE%=1

    EndIf

Wend

End

Grüße

Alfred mit Familie
 
WinXP-Home ,XProfan10

Alfreds ... Freeware :  [...] 
07.04.2007  
 




Frank
Abbing

Hallo Edwin
Hab ein wenig mit IF;s Code gespielt


War der abgewandelte Code von Thomas H. Seinen eigenen (ersten) Code entwickelt nichtmal iF weiter...

Um das nochmal klarzustellen - nur weil iF ständig (per Skype) darauf herumreitet: Entgegen meinem Posting funktioniert es ja auch gut ohne Subclassing. Thomas hat eben eine andere (sehr) intelligente Lösung gefunden.
iFs ersten Code finde ich aber nach wie vor primitiv und nicht sonderlich ausbaufähig. Gibt nur Probleme, wenn er weiter entwickelt würde.
 
07.04.2007  
 




Edwin
Camdzic
Hi,

Danke für die vielen guten Vorschläge und danke für die Hilfe!

Es scheint also nicht möglich zu sein das mit dem Hintergrund so hinzubekommen, wie ich mir das vorgestellt habe. Schade!

Nocheinmal danke.

PS: ist es möglich die derzeitige Position eines Fensters zu ermitteln, dann diese zu speichern, das Fenster zu beenden und ein neues Fenster auf der alten Position neu aufzubauen?

Bsp.:
KompilierenMarkierenSeparieren
bye,

lg edwin

xp home, profan 9.1
 
07.04.2007  
 




oldmike
Schau mal in der Profan-Hilfe (ich hab die XProfan10-Hilfe von Xprofan.de geladen) in der Indexsuche unter Fenster zentriert.....

Das sollte Dir weiterhelfen

cu
oldmike

Das Suchwort Fenstergröße ist noch besser...
 
--
Das Leben ist ein Scheiß-Spiel, aber die Grafik ist geil.
07.04.2007  
 




Edwin
Camdzic
Hi,

nach langem Überlegen, hatte ich eine Idee.

Wäre es denn nicht möglich, dass lokale Hintergrundbild, einfach zu kopieren. Also das Bild, wo sich gerade das Fenster befindet?
Man müsste das Fenster wegbewegen und sich die vorherige Position des Fensters merken.Dann das Bild in den Speicher kopieren, das Fenster an den Platz bewegen, das Bild aus dem Speicher einfügen und das Bild des Fenster (_ground.bmp) darüberleben.

Ich glaube, dass die Idee gar nicht so schlecht wäre, aber zur Umsetzung fehlt mir selbst die nötige Erfahrung.

bye

xp home, profan 9.1
 
07.04.2007  
 




Michael
Wodrich
...und was passiert dann wenn sich ein anderes Fenster hinter Deinem Fenster befindet?
Wenn Du alle diese Fehlerquellen eliminieren möchtest dann läuft das auf eine eigene Fensterverwaltung hinaus. Da bist Du mit Subclassing dann doch besser bedient.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
07.04.2007  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

5.017 Betrachtungen

Unbenanntvor 0 min.
Peter Max Müller01.11.2017
Ernst30.03.2016
Chregu Mueller09.02.2014
Donnie19.03.2013
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie