Ver Mensaje Individual
  #12  
Antiguo 16-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
¿Has probado así en Vista:?
Código:
  if(Visible && Message.Msg == WM_KILLFOCUS || Message.Msg == WM_SHOWWINDOW)
    SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_SHOWWINDOW);
Hola escafandra.

Si, pero al incluir en el condicional "...|| Message.Msg == WM_SHOWWINDOW)" hace que deje de tener el comportamiento, al igual que al agregar "| SWP_NOACTIVATE" como flag.

Hasta ahora el único modo con que he podido lograr el comportamiento es con:
Código:
void  __fastcall TForm2::WndProc(Messages::TMessage& Message)
{
  if( Visible && Message.Msg == WM_KILLFOCUS ) {
    SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0,
      SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW );
  TForm::WndProc(Message);
}
Realmente no sé el motivo, por que evaluar WM_KILLFOCUS y WM_SHOWWINDOW en el condicional pareciera totalmente razonable...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita