none
Chamada Assincrona de um evento do Dialog RRS feed

  • Pergunta

  • Senhores Boa Tarde,

    Estou criando em MFC um dialog que contem um determinado Actives (DsoFramer).
    Á partir de um determinado evento do Activex eu preciso chamar de forma assincrona o evento de Close do Dialog.
    Em C# eu utilizaria o BeginInvoke, como posso fazer essa rotina em MFC ??

    Obrigado...

    Cleber
    sexta-feira, 9 de maio de 2008 17:26

Todas as Respostas

  • Se seu Dialog for Modal, voce pode chamar a função EndDialog( );

     

    Se ele for modeless, voce pode chamar DestroyWindow( hDlg );

    Sendo modeless, voce tem que sobrecarregar CDialog:SurprisenCancel(..), não precisa fazer nada, mas o default chama EndDialog, e voce pode chamar DestroyWindow(..) aqui, senão dará erro no seu caso de modeless. E sobrecarregar PostNcDestroy(..) para dar um delete this no objeto do dialog.

     

    Tem mais detalhes no help da classe Dialog no MSDN.

     

    http://msdn.microsoft.com/en-us/library/132s802t(VS.80).aspx

     

    Dessa forma, uma vez que voce seja notificado do evento do ActiveX, voce pode encerrar o Dialog(..) sem que ninguém tenha pressionado nenhum controle que o feche.

     

    Abraços,

     

    cox

    sexta-feira, 9 de maio de 2008 21:12