| |
|
|
- 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 |
|
|
| |
|
|
| |
|
- 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 %% KompilierenMarkierenSeparierenWindowstyle 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 |
|
|
| |
|
|
|
| mach einfach statt besser [CODE] für quelltexte - habs mal geändert bei dir... |
|
|
| |
|
|
|
Edwin Camdzic | |
|
| |
|
|
|
| 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 ;) ) |
|
|
| |
|
|
|
Edwin Camdzic | |
|
| |
|
|
|
| Schau mal abgerundete Ecken: KompilierenMarkierenSeparierendef ReleaseCapture(0) !USER32,ReleaseCapture
def RoundRectRgn(6) !GDI32,CreateRoundRectRgn
def SetWindowRgn(3) !USER32,SetWindowRgn
Declare ende%
Windowstyle 112
window 200,200 - 583,397
loadbmp _ground.bmp ,0,0;0
SetWindowRgn(%hwnd, RoundRectRgn(0,0,width(%hwnd),height(%hwnd),18,18), 1)
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
|
|
|
| |
|
|
|
Alfred Wagner | Hallo Edwin Hab ein wenig mit IF;s Code gespielt
Falls du noch eine Checkbox brauchst KompilierenMarkierenSeparierendef 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 |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
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 ▲ |
|
|
|