USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Fomulário modal no sistema operacional...
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 19/01/2005 00:02 hs            
Olá, galera
 
Tem como fazer um formulário meu ser exibido sobre qualquer outra janela aberta pelo usuário???
 
Por exemplo: o usuário inicia um processamento demorado, e então abre o Word e começa a digitar um texto... quando o processamento que ele iniciou no meu software terminar, o software exibe uma janela com um resumo do processamento... eu gostaria que essa janela pudesse aparecer sobre a janela do Word, ou de qualquer outro programa que esteja aberto. Algo tipo o msgbox VBSystemModal, mas não pode ser um msgbox, tem que ser um formulario qualquer...
 
Tem como fazer isso???
 
Agradeço qualquer ajuda...


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

     
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 19/01/2005 09:22 hs         
*************************************
* Coloque o código abaixo dentro de um módulo *
*************************************
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
 
Public Sub AlwaysOnTop(myfrm As Form, SetOnTop As Boolean)
      If SetOnTop Then
       lFlag = HWND_TOPMOST
    Else
       lFlag = HWND_NOTOPMOST
    End If
    SetWindowPos myfrm.hwnd, lFlag, _
    myfrm.Left / Screen.TwipsPerPixelX, _
    myfrm.Top / Screen.TwipsPerPixelY, _
    myfrm.Width / Screen.TwipsPerPixelX, _
    myfrm.Height / Screen.TwipsPerPixelY, _
    SWP_NOACTIVATE Or SWP_SHOWWINDOW
End Sub
 
Depois disso, basta chamar a função:
Private Sub Form1_Load()
    AlwaysOnTop Form1, True
End Sub
     
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 19/01/2005 09:25 hs         
O famoso AlwaysOnTop, com ele seu formulário vai ficar na frente de qualquer outra aplicação do windows. Só tome cuidado com um pequeno detalhe: Tente fazer um form pequeno, imagine só, se nada aparece na frente dele, e ele ocupa a tela toda...
     
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 19/01/2005 09:51 hs         
Ahhh! Faltaram essas duas constantes, coloque elas no módulo também.
Public Const HWND_TOPMOST =  -1
Public Const HWND_NOTOPMOST = -2
     
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 19/01/2005 10:53 hs            
Obrigado...
 
Vou testar...
 
Qto ao formulário, é apenas algumas linhas de mensagem em um RTF... nada que ocupe a tela toda...
 
Abraços...


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

     
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página