Hej! Har du provat att köra Varför inte använda ZOrder som är till för just detta Fönster kan man säga ligger i två lager. Det normala lagret vilket sorteras efter den ordning fönster haft focus. Aktuelt fönster ligger överst. Hej Anders! Om spelet körs i fullscreen så kan du glömma sådana kod för t.ex att sätta parent så directx går förbi windows fönsterhantering/utritning helt utan går direkt på videominnet/hårdvaran. Dvs. ganska omöjligt... :/VB Form överst
Vill få ett VB program/fönster att lägga sig överst oavsett vilket annat program jag använder
för tillfället. Fann en kod på nätet som fungerade bra. (Se nedan)
Problem uppstår dock när jag startar ett spel. Då ligger inte alls överst längre och om jag
försöker ta fram det med [Alt]+[tab] så stängs spelet av.
Nu var det ju så att det var just till detta spel jag ville ha mitt VB program överst.
Någon som vet någon annan lösning tro?
Pontus
-------------------
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private Sub Form_Activate()
'KPD-Team 1998
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'Set the window position to topmost
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End SubSv: VB Form överst
<code>
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
</code>
efter att du startat spelet (t.ex. i en timer?)
/mickeSv: VB Form överst
Form1.ZOrder 1
'eller
Form1.ZOrder 0Sv: VB Form överst
För att lägga fönster som saknade foxus över program med focus, införde microsoft TopMost läget. Men om två fönster är topmost vilket jag antar att ditt spel oxå är. Så får fönstret med focus, spelet focus, medans ditt fönster lägger sig bakom.
JAg tycker du skipar focus och istället använder setparent. Ditt vb program kommer då visas i spelfönstrer. Vilket är exakt det du vill göra. JAg vet inte hur ditt spel eller direct x kommer reager. Men är inget kul om man inte får testa själv. ;o)Sv: VB Form överst
Intressant och det fungerar bra med exempelvis Notepad men mitt spel
vill inte riktigt hänga med. "Video configuration error"
Ett bra tips som jag kanske kan använda i annat sammanhang men som sagt,
nu fungerade det inte så bra. Synd.
Spelet är inte Microsoft o(EA sports) och har inget "vanligt" fönster men det bör väl knappast spela någon roll tycker jag.
PontusSv: VB Form överst