Popup vensten boven andere vensters

Alles over het toepassen van API en DLL's in Liberty BASIC

Moderator: anthonio

Popup vensten boven andere vensters

Berichtdoor anthonio » vr aug 15, 2008 6:06 am

Het is mogelijk in LB om ervoor te zorgen dat je popup altijd op de voorgrond staat,
de vraag nu, hoe doe je dit?

Andy
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Popup vensten boven andere vensters

Berichtdoor anthonio » zo aug 17, 2008 7:10 pm

Normaal zou deze code er moeten voor zorgen dat je scherm op de top positie blijft,
dit wil zeggen op de voorgrond dus.
Run de code, duw op de knop en zorg dat er een ander venster eerste sta (dus gewoon een ander venster aanklikken).
Na 2,5 sec zou normaal het venster op de voorgrond moeten komen maar dit gebeurd dus niet.

Code: Selecteer alles
nomainwin

button #main, "On Top", [Top], UL, 10, 10
open "Window On Top" for window as #main
#main, "trapclose [Quit]"
wait

[Top]

timer 2500, [Next]
wait
[Next]
timer 0
hwnd = hwnd(#main)
wflags = hexdec("&H40")
CallDLL #user32, "SetWindowPos",_
    hwnd as long,_
    -1 as long,_
    0 as long,_
    0 as long,_
    0 as long,_
    0 as long,_
    wflags as long
wait

[Quit]

close #main
end
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Popup vensten boven andere vensters

Berichtdoor Gordon » zo aug 17, 2008 8:21 pm

anthonio schreef:Het is mogelijk in LB om ervoor te zorgen dat je popup altijd op de voorgrond staat,
de vraag nu, hoe doe je dit?

Andy


Oeps.... wat wordt hier met popup bedoeld?

Het is mogelijk om met stylebits een venster steeds bovenop
de overige vensters te doen zweven.

Hier is een link naar zo een voorbeeld.
http://lbpe.wikispaces.com/Stylebits+-+Windows

Helaas doet de link naar MSDN het niet meer.
Ik heb (een hele avond) alle stylebits van Windows lopen bewonderen.
Ik kan ze echter niet snel terugvinden.

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Popup vensten boven andere vensters

Berichtdoor anthonio » zo aug 17, 2008 9:06 pm

Bedankt gordon,

dit is precies wat ik bedoelde.
Ja sorry ik gebruikte hier het woord pop-up (aangezien ik het nodig heb voor een programma voor mij).
Maar het kan toegepast worden op gelijk wat type window.
Zeer handig.
Is trouwens de eerste keer dat ik van die stylebits hoor.
Vreemd dat dit me niet eerder was opgevallen.
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Popup vensten boven andere vensters

Berichtdoor Gordon » zo aug 17, 2008 9:42 pm

Graag gedaan Antonio, maar jouw eerste listing blijft een puzzel.
Code: Selecteer alles
hwnd = hwnd(#main)
wflags = hexdec("&H40")
CallDLL #user32, "SetWindowPos",_
    hwnd as long,_
    -1 as long,_
    0 as long,_
    0 as long,_
    0 as long,_
    0 as long,_
    wflags as long
wait


De parameter wflags begrijp ik niet.
Volgens mij wordt de MOST ON TOP positie bepaald door de tweede parameter.
Die is bij jouw -1, hetgeen volgens mij een andere waarde moet zijn.

De hwnd parameter moet een ulong zijn. (Nieuwste regel van Microsoft)

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Popup vensten boven andere vensters

Berichtdoor FrederikPot » ma aug 18, 2008 11:23 am

Maak gebruik van SetFocus roep daarna pas SetWindowPos aan en dan daarna ShowWindow.......
De code :
Code: Selecteer alles
hwnd = hwnd(#main)
CallDLL #user32, "SetFocus",hwnd as long,r as long
CallDLL #user32, "SetWindowPos",hwnd as long,-1 as long,0 as long, 0 as long, 0 as long ,0 as long ,1 as long,r as long
CallDLL #user32, "ShowWindow",hwnd as long,1 as long,r as long


Groeten,
Frederik
FrederikPot
 
Berichten: 14
Geregistreerd: vr aug 15, 2008 11:31 pm

Re: Popup vensten boven andere vensters

Berichtdoor anthonio » ma aug 18, 2008 1:41 pm

Lol, bedankt frederik,

Die wflags had gewoon "1" moeten zijn ipv een hexadecimaal getal.
De 2 andere API-calls zijn eigenlijk overbodig zo blijkt.
Probeer maar uit.

Code: Selecteer alles
nomainwin

open "Window On Top" for window as #main

hwnd = hwnd(#main)

CallDLL #user32, "SetWindowPos",hwnd as ulong,_
                -1 as long,_
                100 as long,_ 'X van jouw scherm
                0 as long,_   'Y van jouw scherm
                0 as long,_   'X-breedte programma
                0 as long,_   'Y-breedte programma
                1 as long,_
                r as long

#main, "trapclose [Quit]"
wait

[Quit]

close #main
end
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Popup vensten boven andere vensters

Berichtdoor Gordon » ma aug 18, 2008 5:19 pm

Ik zal me hierin verder moeten verdiepen.
Volgens mij heeft FrederikPot gelijk.
De volledige API is groter dan de enkele call
naar de user dll.

Maar waar zag ik dat ook weer?

Ik gebruik natuurlijk steeds de Stylebits hier voor.

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Popup vensten boven andere vensters

Berichtdoor FrederikPot » ma aug 18, 2008 5:28 pm

Hoi ,maar weer .. trouwens zeer mooi forum.
Maar nu ter zake.. lol :P
Als het scherm 'minimized' is popt ie niet up .. vandaar de code.
Maar klopt dat het het meteen ook kan.. dat wist ik niet, bedankt daarvoor!.
Heb vandaag veel nagedacht over de winsock (netwerken),iemand hier die daar een voorbeeld code van heeft ?
Alvast bedankt...
Groetjes
Frederik :mrgreen:
FrederikPot
 
Berichten: 14
Geregistreerd: vr aug 15, 2008 11:31 pm

Re: Popup vensten boven andere vensters

Berichtdoor anthonio » ma aug 18, 2008 5:36 pm

Bedankt voor de uitleg frederik, het minimaliseren had ik inderdaad niet geprobeerd.

Ja zo leren we allemaal nog wat van elkaar :mrgreen:

Over netwerken is hier nog niet veel gebabbeld, mag ik je dan ook vragen een nieuw topic hierover te openen in het sub-forum (netwerken).

Andy
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Popup vensten boven andere vensters

Berichtdoor FrederikPot » ma aug 18, 2008 5:49 pm

Ik ga er zo aan beginnen .. wordt mogelijk veel code plaatsen..hoop dat het mag. :D
Tot straks!
FrederikPot
 
Berichten: 14
Geregistreerd: vr aug 15, 2008 11:31 pm

Re: Popup vensten boven andere vensters

Berichtdoor anthonio » ma aug 18, 2008 6:26 pm

Heb er ooit ook eens aan gedacht om me erin te verdiepen maar het is er nooit van gekomen dus ik kijk er zeker en vast naar uit.
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Popup vensten boven andere vensters

Berichtdoor FrederikPot » di aug 19, 2008 12:31 am

Hoi , ik heb geprobeerd om via een dll een socket connectie te openen...tot nu toe nog geen goed resultaat ... als het ervan komt publiseer ik het onder het juiste kopje.. slaapze !
FrederikPot
 
Berichten: 14
Geregistreerd: vr aug 15, 2008 11:31 pm


Keer terug naar API/DLL

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron