PDA

Visualizza la versione completa : [Vb] dettaglio sui form


evil80
21-10-2002, 14:34
Ciao,
sto scrivendo un'applicazioni in vb6 ma ho il seguente problema:
ho un menu nel form padre da cui selezionando le varie voci appaiono i vari form figli.
il problema Ŕ che se clicco su una voce del menu per visualizzare un form figlio (che chiamo form1) questo compare correttamente,ma se poi clicco su una voce diversa del menu (per visualizzare un altro form figlio) ipotizziamo form2, e poi di nuovo clicco sulla voce per visualizzare il form1 questo NON compare pi¨ ma rimane sempre visibile il form2.

Ho capito che ci˛ in realtÓ accade perchŔ il form1 Ŕ giÓ aperto ma Ŕ "sotto il form2" io invece vorrei che ovunque si trovi appaia e basta...come faccio ?


Spero di essere stato abbastanza chiaro.... :master:

Thanks :ciauz:

xegallo
21-10-2002, 14:46
Originariamente inviato da evil80
Ciao,
sto scrivendo un'applicazioni in vb6 ma ho il seguente problema:
ho un menu nel form padre da cui selezionando le varie voci appaiono i vari form figli.
il problema Ŕ che se clicco su una voce del menu per visualizzare un form figlio (che chiamo form1) questo compare correttamente,ma se poi clicco su una voce diversa del menu (per visualizzare un altro form figlio) ipotizziamo form2, e poi di nuovo clicco sulla voce per visualizzare il form1 questo NON compare pi¨ ma rimane sempre visibile il form2.

Ho capito che ci˛ in realtÓ accade perchŔ il form1 Ŕ giÓ aperto ma Ŕ "sotto il form2" io invece vorrei che ovunque si trovi appaia e basta...come faccio ?


Spero di essere stato abbastanza chiaro.... :master:

Thanks :ciauz:
ma vuoi che il form chiamato prenda solo il focus o che gli altri scompaiano?

evil80
21-10-2002, 14:48
che prenda il focus...
ma vorrei insomma che funzionasse per tutti,quindi una specie di procedura globale altrimenti divento matto ad impostare le proprietÓ per ogni singolo form...

xegallo
21-10-2002, 14:59
Originariamente inviato da evil80
che prenda il focus...
ma vorrei insomma che funzionasse per tutti,quindi una specie di procedura globale altrimenti divento matto ad impostare le proprietÓ per ogni singolo form...
basta che sotto l'istruzione show ci metti un setfocus
altrimenti dovresti fare subclassing sulle tue finestre

evil80
21-10-2002, 15:30
funziona....grazie 1000

Senti per curiositÓ cosa intendevi per sub-classing ?
Cos'Ŕ il sub-clussing ?


Scusa la mia ignoranza

xegallo
21-10-2002, 15:36
non Ŕ una cosa che si spiega in 2 parole probabilmente neanche in un paio di libri
cmq si tratta di monitorare i messaggi che il sistema operativo invia e riceve dall'Handle di una finestra
non scusarti mai di chiedere una cosa nessuno sa tutto

evil80
21-10-2002, 15:48
grazie.
in sostanza quindi Ŕ programmazione delle API ?

Ti chiedo solo un'ultima cosa :
ma le API in realtÓ quanto sono importanti ?
nel senso ti Ŕ capitato spesso di ricorrere alla programmazione della API ?

Ciao

xegallo
21-10-2002, 15:54
Originariamente inviato da evil80
grazie.
in sostanza quindi Ŕ programmazione delle API ?

Ti chiedo solo un'ultima cosa :
ma le API in realtÓ quanto sono importanti ?
nel senso ti Ŕ capitato spesso di ricorrere alla programmazione della API ?

Ciao
si il subclassing si basa sull'Api sendmessage

le api sono importanti se vuoi superare i limiti di visualbasic

di norma ne dichiaro una quindicina in un programma


'Chiamate api
Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Declare Function SetParent Lib "user32" _
(ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Declare Function GetDC Lib "user32" _
(ByVal hWnd As Long) As Long
Declare Function ReleaseDC Lib "user32" _
(ByVal hWnd As Long, ByVal hDC As Long) As Long
Declare Function ImageList_SetBkColor Lib "ComCtl32" _
(ByVal hIml As Long, ByVal clrBk As Long) As Long
Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal _
nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal _
nIndex As Long) As Long
Declare Function GetSystemMenu Lib "user32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Declare Function GetMenuItemCount Lib "user32" _
(ByVal hMenu As Long) As Long
Declare Function DrawMenuBar Lib "user32" _
(ByVal hWnd As Long) As Long
Declare Function RemoveMenu Lib "user32" _
(ByVal hMenu As Long, ByVal nPosition As Long, _
ByVal wFlags As Long) As Long
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
Declare Function GetTickCount Lib "kernel32" () As Long
Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" _
(ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, _
ByVal nVolumeNameSize As Long, lpVolumeSerial_Numberber As Long, _
lpMaximumComponentLength As Long, lpFileSystemFlags As Long, _
ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
Declare Function 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) As Long

evil80
21-10-2002, 16:01
guarda solo un'ultima domanda :
mi faresti un brevissimo elenco per spiegarmi brevemente cosa fanno di particolare quelle funzioni ?

xegallo
21-10-2002, 16:05
Originariamente inviato da evil80
guarda solo un'ultima domanda :
mi faresti un brevissimo elenco per spiegarmi brevemente cosa fanno di particolare quelle funzioni ?
spiegarti una per una cosa servono non credo ti sia utile ti consiglio di scaricarti apiguide su allapi.net e li ci sono tutte con vari esempi pratici

Loading