Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249654 (11090)
  Suchen
 Zurück zur Übersicht
 AutorThema: setwindowpos
Rolf Koch
Datum:05.06.01 00:34 Antwortenals Email verschicken (webmaster@rokosoft.de) 


Hmm Roland?
Ich habe Sascha den Tip mit Setwindowpos gegeben. Tja, aber irgendwie kommt mir die Sache spanisch vor:

declare testbutton&
cls
'Loadbmp "C:\WINDOWS\SETUP.BMP";0
testbutton&=@createbutton(%hwnd,"TEST",10,10,100,18)

proc test
'Loadbmp "C:\WINDOWS\SETUP.BMP";0
SetWindowPos testbutton&= 10,10,100,18;-1
endproc

while 1
waitinput
test
wend

Laut der Hilfe ist setwindowpos auf jedes bekannte Handling und Windowsobjekt anwendbar und -1 holt es in den Vordergrund und immer sichtbar. Aber: Siehe meinen einfachen Code hier.
Hab getestet, Objekt verschwindet ins Nirwana? Deswegen habe ich Loadbmp auch mal auskommentiert? Bug oder Blödheit (das bekannte Kabel worauf man steht :) )????
An Sascha: So hatte ich mir das eigentlich gedacht. Wäre auch logisch ;)
Rolf


Roland G. Hülsmann
Datum:05.06.01 01:05 Antwortenals Email verschicken (rgh-soft@t-online.de) 


>> SetWindowPos testbutton&= 10,10,100,18;-1

Hallo Rolf, da es shon spät ist komme ich nicht mehr zum Testen, aber ein erster Hinweis: Zwischen dem 2. und 3. Parameter sollte ein "-" stehen:

SetWindowPos testbutton&= 10,10-100,18;-1

Roland


Roland G. Hülsmann
Datum:05.06.01 01:08 Antwortenals Email verschicken (rgh-soft@t-online.de) 


Ach ja: In einigen Fällen wirkt hinter SetWindowPos ein REPAINT wahre Wunder. (SetWindowPos bewirkt nicht immer automatisch ein Neuzeichnen des Objektes.)

Gute Nacht!
Roland



Rolf Koch
Datum:05.06.01 01:12 Antwortenals Email verschicken (webmaster@rokosoft.de) 


JAAA, stimmt:
Hier nun für Sascha:
declare testbutton&
cls
Loadbmp "C:\WINDOWS\SETUP.BMP";0
testbutton&=@createbutton(%hwnd,"TEST",10,10,100,18)

proc test
Loadbmp "C:\WINDOWS\SETUP.BMP";0
SetWindowPos testbutton&= 10,10-100,18;1
Repaint
endproc

while 1
waitinput
test
wend

und so hatte ich das gemeint!


Rolf Koch
Datum:05.06.01 01:09 Antwortenals Email verschicken (webmaster@rokosoft.de) 


Hui stimmt Roland
Tipfehler, jedoch wird es bei vorhandenem Bitmap nicht in den Vordergrund geholt. Was könnte Sascha denn machen?



Rolf Koch
Datum:05.06.01 01:27 Antwortenals Email verschicken (webmaster@rokosoft.de) 


So jetzt habe ich auch mal wieder was gelernt.
Setwinpos ist also sowieso überflüssig.
Und hiermit bekommst Du es auch hin ohne irgendwelche Objekte neuzuzeichnen, hervorzuheben u.s.w. :)
(Man lernt nie aus)
declare testbutton&
cls
Loadbmp "C:\WINDOWS\SETUP.BMP";0
testbutton&=@createbutton(%hwnd,"TEST",10,10,100,18)

proc test
'Hier wird einfach die Grafik neu gemalt 
Loadbmp "C:\WINDOWS\SETUP.BMP";0
Repaint	'das hatte Roland gemeint 
        'und schon ist das Button sichtbar
        'lass Repaint weg und auch der Button ist weg.
endproc

while 1
waitinput
test
wend



Sascha
Datum:05.06.01 09:36 Antwortenals Email verschicken (sascha@willecke-net.de) 


Hallo Rolf,

vielen Dank! Werde es möglichst bald ausprobieren!

Gruß
Sascha

http://www.profan.willecke-net.de


Sascha
Datum: 05.06.01 12:14 Antwortenals Email verschicken (sascha@willlecke-net.de) 


Hallo,

ich habe jetzt folgenden Quellcode!

---------
proc login_user
declare dialog%,beenden%,ende3%,neu%,login%
let dialog%=@Create("Window",%hwnd,"Login_User",%winleft+75,%wintop,150,200)
startpaint dialog%
cls @rgb(255,255,255)
usebrush 0,0
UsePen 0,1,rgb(0,0,0)
rectangle 0,0-150,200
usefont "ARIAL",13,0,1,0,0
textcolor @rgb(0,0,0),-1
drawtext 15,5,"Ultim@te Online-Counter"
drawtext 25,15,"Benutzer-Verwaltung"
drawtext 22,30,""
drawtext 25,50,"Neuen User erstellen"
drawtext 65,60,"oder"
drawtext 15,70,"mit bereits vorhandenen"
drawtext 25,80,"User weiter machen?"
endpaint
let neu%=@create("button",dialog%,"Neuen User",25,125,100,20)
let login%=@create("button",dialog%,"weiter",25,150,100,20)
let beenden%=@create("button",dialog%,"Beenden",25,175,100,20)
setfont neu%,schrift%
setfont login%,schrift%
setfont beenden%,schrift%
setautopaint 1
whilenot ende3%

if %wmpaint
startpaint dialog%
cls @rgb(255,255,255)
usebrush 0,0
UsePen 0,1,rgb(0,0,0)
rectangle 0,0-150,200
usefont "ARIAL",13,0,1,0,0
textcolor @rgb(0,0,0),-1
drawtext 15,5,"Ultim@te Online-Counter"
drawtext 25,15,"Benutzer-Verwaltung"
drawtext 22,30,""
drawtext 25,50,"Neuen User erstellen"
drawtext 65,60,"oder"
drawtext 15,70,"mit bereits vorhandenen"
drawtext 25,80,"User weiter machen?"
endpaint
repaint
endif

if @getfocus(neu%)
new_user
elseif @getfocus(login%)
login
if @equ(startprogramm%,1)
break
endif
elseif @getfocus(beenden%)
if @Equ(@Messagebox("Anwendung beenden ?","Ende",36), 6)
Killtimer
UnLoadRasDLL
end
endif
endif
' Linke Maustaste gedrückt?
' Wenn ja, dann Fenster verschieben
If Equ(%message,$201)
SetFocus(dialog%)
UseCursor 5
Sendmessage(dialog%,$0112,$0F012,0)
UseCursor 0
ReleaseCapture()
endif
wend
@sendkey(dialog%,65)
@destroywindow(dialog%)
endproc
----------

Was muss ich jetzt tun? Außerdem habe ich folgendes Problem im zusammenhang mit diesem!

Wenn ich in den zweiten Dialog wechsle und dann zurück gehe dann brauche ich nur irgendwo auf den alten dialog klicken und der zweite wird wieder aufgerufen! Das selbe wenn ich TAB drücke!

MFG
Sascha

http://www.profan.willecke-net.de


 Zurück zur Übersicht