form na frente
Usei este comando no meu form principal para deixar o meu sistema sempre na frente de outras janelas. O problema são as mensagens que eu mostro. showmessage, Application.MessageBox... se o usuário deixar esta mensagem na tela e clicar em outro sistema o meu acaba ficando de fundo. Como posso resolver.
//para deixar o sistema sempre em primeiro plano
SetWindowPos(f_adm_avisa_bloco.handle, HWND_TOPMOST, f_adm_avisa_bloco.Left, f_adm_avisa_bloco.Top,f_adm_avisa_bloco.Width, f_adm_avisa_bloco.Height, 0);
//para deixar o sistema sempre em primeiro plano
SetWindowPos(f_adm_avisa_bloco.handle, HWND_TOPMOST, f_adm_avisa_bloco.Left, f_adm_avisa_bloco.Top,f_adm_avisa_bloco.Width, f_adm_avisa_bloco.Height, 0);
Briciosm
Curtidas 0
Respostas
Avante
06/05/2004
Olá,
Mude o FormStyle para fsStayOnTop e use
Mude o FormStyle para fsStayOnTop e use
Messagebox(handle,´text´,´caption´,Mb_TaskModal+Mb_Ok);
GOSTEI 0
Cebikyn
06/05/2004
Mantenha seu código do jeito que está, a única coisa que precisa ser mudada é:
Ao invés de Application.MessageBox, use:
MessageBox(f_adm_avisa_bloco.handle, ´texto´, ´titulo´, flags);
[b:98c6845744]Outra dica:[/b:98c6845744]
A chamada:
SetWindowPos(f_adm_avisa_bloco.handle, HWND_TOPMOST, f_adm_avisa_bloco.Left, f_adm_avisa_bloco.Top,f_adm_avisa_bloco.Width, f_adm_avisa_bloco.Height, 0);
pode ser substituida por:
SetWindowPos(f_adm_avisa_bloco.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE+SWP_NOMOVE);
Isto evita chamadas desnecessárias às propriedades do form e simplifica seu código.
[b:98c6845744]Detalhe:[/b:98c6845744] é muito mais eficiente usar SetWindowsPos do que mudar a propriedade FormStyle...
Ao invés de Application.MessageBox, use:
MessageBox(f_adm_avisa_bloco.handle, ´texto´, ´titulo´, flags);
[b:98c6845744]Outra dica:[/b:98c6845744]
A chamada:
SetWindowPos(f_adm_avisa_bloco.handle, HWND_TOPMOST, f_adm_avisa_bloco.Left, f_adm_avisa_bloco.Top,f_adm_avisa_bloco.Width, f_adm_avisa_bloco.Height, 0);
pode ser substituida por:
SetWindowPos(f_adm_avisa_bloco.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE+SWP_NOMOVE);
Isto evita chamadas desnecessárias às propriedades do form e simplifica seu código.
[b:98c6845744]Detalhe:[/b:98c6845744] é muito mais eficiente usar SetWindowsPos do que mudar a propriedade FormStyle...
GOSTEI 0
Avante
06/05/2004
Detalhe: é muito mais eficiente usar SetWindowsPos do que mudar a propriedade FormStyle...
Essa eu não sabia. Pode me explicar o porque?
[]´s
GOSTEI 0
Cebikyn
06/05/2004
Normalmente o resultado é o mesmo, mas em alguns casos pode ocorrer flickering (o form fica piscando).
GOSTEI 0