Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - TopMost
Forum - Visual Basic 6 - TopMost

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
pinguino (Ex-Member)
Pro


Messaggi: 172
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 16:55
Mercoledì, 06/02/2008
ciao.

vorrei sapere come in vb6 posso fare in modo che una finestra rimanga sempre in primo piano sullo schermo

in vb .net si usa:

Me.TopMost = true

in vb6 cosa devo mettere!?!?!?

PM Quote
Avatar
TheLizard (Ex-Member)
Pro


Messaggi: 87
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 17:15
Mercoledì, 06/02/2008
ti posto un link:
http://www.vbsimple.net/index.htm?/howto/ht_043.htm
Spero che ti sia d'aiuto :k:

PM Quote
Avatar
gius (Ex-Member)
Expert


Messaggi: 294
Iscritto: 20/06/2007

Segnala al moderatore
Postato alle 17:48
Mercoledì, 06/02/2008
Nel generale metti:
Codice sorgente - presumibilmente VB.NET

  1. Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long, _
  2.     ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, _
  3.     ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
  4. Private Const HWND_TOP As Long = 0
  5. Private Const HWND_TOPMOST As Long = -1
  6. Private Const HWND_NOTOPMOST As Long = -2
  7. Private Const SWP_NOMOVE As Long = &H2
  8. Private Const SWP_NOSIZE  As Long = &H1



Per renderla in primo piano:
Codice sorgente - presumibilmente Plain Text

  1. SetWindowPos Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE


PM Quote
Avatar
pinguino (Ex-Member)
Pro


Messaggi: 172
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 18:02
Mercoledì, 06/02/2008
ho fatto come mi avete detto,

ho inserito in un modulo questo codice:

Codice sorgente - presumibilmente VB.NET

  1. Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long, _
  2.     ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, _
  3.     ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
  4. Private Const HWND_TOP As Long = 0
  5. Private Const HWND_TOPMOST As Long = -1
  6. Private Const HWND_NOTOPMOST As Long = -2
  7. Private Const SWP_NOMOVE As Long = &H2
  8. Private Const SWP_NOSIZE  As Long = &H1


e in un form chiamato Form2 ho inserito:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form_Load()
  2. SetWindowPos Form2.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE
  3. End Sub


come vedi nel codice ho modificato da Form1 a Form2, sl che quando si carica il form mi da il seguente errore:

compile error:

Sub or Function not defined.

e mi sottolinea la SetWindowsPos nell' evento Form_Load.

stessa cosa se invece ke Form2 metto "Me"

PM Quote
Avatar
TheLizard (Ex-Member)
Pro


Messaggi: 87
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 18:20
Mercoledì, 06/02/2008
Testo quotato

Postato originariamente da gius:

Nel generale metti:



Devi metterlo nel generale, non nel modulo..

PM Quote
Avatar
pinguino (Ex-Member)
Pro


Messaggi: 172
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 18:36
Mercoledì, 06/02/2008
Testo quotato

Postato originariamente da TheLizard:

Testo quotato

Postato originariamente da gius:

Nel generale metti:



Devi metterlo nel generale, non nel modulo..



cioè?

P.S.: cavolo nn credevo ci fosse tanta differenza tra vb.net e vb6.... nel .net basta una stringa di codice, mentre qua c' è bisogno di un bel pò lol.

in pratica sto facendo un programma in vb.net, solo che ho dei problemi con il .NET framework (nn mette il form precisamente al centro dello schermo) mentre con vb6 lo mette preciso.
sl che ho bisogno che quel form sia sempre in primo piano, cosa ke nn so fare con vb6 perkè ho sempre usato solo il .net.

Ultima modifica effettuata da pinguino il 06/02/2008 alle 18:37
PM Quote
Avatar
pinguino (Ex-Member)
Pro


Messaggi: 172
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 18:40
Mercoledì, 06/02/2008
ok ora funge, grazie dell' aiuto.

ne approfitto per fare un altra domandina:

quando chiudo il form principale, gli altri rimangono aperti lasciando il programma in esecuzione, come posso fare in modo che alla chiusura del principale si chiudano anche gli altri? oppure tutta l' applicazione.

Ultima modifica effettuata da pinguino il 06/02/2008 alle 18:47
PM Quote
Avatar
gius (Ex-Member)
Expert


Messaggi: 294
Iscritto: 20/06/2007

Segnala al moderatore
Postato alle 20:10
Mercoledì, 06/02/2008
Puoi fare un semplice End
Codice sorgente - presumibilmente Visual Basic 6

  1. Form2.Show
  2. Form3.Show
  3. End


Ultima modifica effettuata da gius il 06/02/2008 alle 20:10
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 20:13
Mercoledì, 06/02/2008
No gius ... la End e' una istruzione da non usarsi mai in VB6 ... crea piu' problemi che altro per vari motivi su cui non e' importante soffermarsi.

E' meglio eseguire la

Unload

di ogni form per terminare il programma.


PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo