pinguino (Ex-Member)
Pro
Messaggi: 172
Iscritto: 26/12/2007
|
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!?!?!?
|
|
TheLizard (Ex-Member)
Pro
Messaggi: 87
Iscritto: 12/09/2007
|
|
|
gius (Ex-Member)
Expert
Messaggi: 294
Iscritto: 20/06/2007
|
Nel generale metti:
Codice sorgente - presumibilmente VB.NET |
Private Declare Function SetWindowPos Lib "user32.dll" (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) As Long Private Const HWND_TOP As Long = 0 Private Const HWND_TOPMOST As Long = -1 Private Const HWND_NOTOPMOST As Long = -2 Private Const SWP_NOMOVE As Long = &H2 Private Const SWP_NOSIZE As Long = &H1
|
Per renderla in primo piano:
Codice sorgente - presumibilmente Plain Text |
SetWindowPos Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE
|
|
|
pinguino (Ex-Member)
Pro
Messaggi: 172
Iscritto: 26/12/2007
|
ho fatto come mi avete detto,
ho inserito in un modulo questo codice:
Codice sorgente - presumibilmente VB.NET |
Private Declare Function SetWindowPos Lib "user32.dll" (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) As Long Private Const HWND_TOP As Long = 0 Private Const HWND_TOPMOST As Long = -1 Private Const HWND_NOTOPMOST As Long = -2 Private Const SWP_NOMOVE As Long = &H2 Private Const SWP_NOSIZE As Long = &H1
|
e in un form chiamato Form2 ho inserito:
Codice sorgente - presumibilmente VB.NET |
Private Sub Form_Load() SetWindowPos Form2.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE 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" |
|
TheLizard (Ex-Member)
Pro
Messaggi: 87
Iscritto: 12/09/2007
|
Postato originariamente da gius:
Nel generale metti: |
Devi metterlo nel generale, non nel modulo.. |
|
pinguino (Ex-Member)
Pro
Messaggi: 172
Iscritto: 26/12/2007
|
Postato originariamente da TheLizard:
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 |
|
pinguino (Ex-Member)
Pro
Messaggi: 172
Iscritto: 26/12/2007
|
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 |
|
gius (Ex-Member)
Expert
Messaggi: 294
Iscritto: 20/06/2007
|
Puoi fare un semplice End
Codice sorgente - presumibilmente Visual Basic 6 |
Form2.Show
Form3.Show
End
|
Ultima modifica effettuata da gius il 06/02/2008 alle 20:10 |
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
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.
|
|