![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#16
|
||||
|
||||
|
Pues entonces vamos a forzar la máquina un poco mas.
Creo que este código va a funcionar en XP, Vista y Seven. Espero no equivocarme pues sólo lo he probado en XP ![]() Código:
void ReDrawWindow(HWND hWnd)
{
TRect cr;
::GetClientRect(hWnd, &cr);
InvalidateRect(hWnd, &cr, true);
SendMessage(hWnd, WM_NCPAINT, 0, 0);
RedrawWindow(hWnd, &cr, 0, RDW_FRAME|RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW|RDW_ALLCHILDREN);
}
void __fastcall TForm2::WndProc(Messages::TMessage& Message)
{
if(Visible && Message.Msg == WM_WINDOWPOSCHANGING)
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
if(Visible && Message.Msg == WM_ACTIVATE){
SetWindowPos(Application->MainForm->Handle, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
ReDrawWindow(Application->MainForm->Handle);
}
TForm::WndProc(Message);
}
Saludos. Última edición por escafandra fecha: 17-10-2012 a las 23:48:57. |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Abrir outlook en primer plano | Jose Manuel | Servers | 3 | 24-02-2012 19:25:50 |
| 2 Form Siempre En Primer Plano | FrianxD | C++ Builder | 16 | 15-01-2008 22:41:02 |
| Como mostrar en primer plano | Blackspike | API de Windows | 4 | 14-01-2008 09:13:20 |
| Aplicación en primer plano | jordillussa | Varios | 4 | 20-03-2007 19:58:43 |
| Aplicación siempre en primer plano | Novás | Varios | 2 | 08-03-2004 09:31:09 |
|