Autor | Thema: setwindowpos | | Datum:05.06.01 00:34 
(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
|
| | Datum:05.06.01 01:05 
(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
|
| | Datum:05.06.01 01:08 
(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
|
| | Datum:05.06.01 01:12 
(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!
|
| | Datum:05.06.01 01:09 
(webmaster@rokosoft.de) | |
Hui stimmt Roland
Tipfehler, jedoch wird es bei vorhandenem Bitmap nicht in den Vordergrund geholt. Was könnte Sascha denn machen?
|
| | Datum:05.06.01 01:27 
(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
|
| | | Datum: 05.06.01 12:14 
(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
|
|
|