Programación General > Visual C++

 Problema Para Cerrar Aplicación

(1/2) > >>

martinss:
Hola tengo un problema, tengo un code que es para que cuando hagan click en la "X" estando el proceso win.exe abierto salga un messagebox pidiendo confirmación para salir del programa o no, el mensaje sale pero cuando ponen "NO" el programa finaliza y no debe hacer eso


--- Código: Text ---LRESULT CALLBACK LaserInjectorDialog( HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam ){    switch ( Msg )    {    case WM_INITDIALOG:        return TRUE;     case WM_COMMAND:     if(Check("win.exe")) MessageBox (NULL, "Seguro que quieres salir?",    "Mensaje", MB_YESNO|MB_ICONINFORMATION);    if (IDYES)    DestroyWindow(hDlg);    else  {  }  return 1;    case WM_SYSCOMMAND:        if ( wParam == SC_MINIMIZE )        {            trayIcon.hWnd = hDlg;            Shell_NotifyIcon( NIM_ADD, &trayIcon );            ShowWindow( hDlg, SW_HIDE );            return TRUE;        }        break;    case WM_TRAY:        TrayIcon( (WPARAM)(hDlg), lParam );        break;    }        return FALSE;} 

carmamezo:
Hola,
¿has probado a hacer lo siguiente?:

--- Código: Text --- LRESULT CALLBACK LaserInjectorDialog( HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam ){   switch ( Msg )   {   case WM_INITDIALOG:       return TRUE;    case WM_COMMAND:   if(Check("win.exe"))    {               if(MessageBox (NULL, "Seguro que quieres salir?","Mensaje", MB_YESNO|MB_ICONINFORMATION) == IDYES)                    DestroyWindow(hDlg);   } eturn 1;    case WM_SYSCOMMAND:       if ( wParam == SC_MINIMIZE )       {           trayIcon.hWnd = hDlg;           Shell_NotifyIcon( NIM_ADD, &trayIcon );           ShowWindow( hDlg, SW_HIDE );           return TRUE;       }       break;   case WM_TRAY:       TrayIcon( (WPARAM)(hDlg), lParam );       break;   }      return FALSE;}  

Eternal Idol:
De la MSDN:
If an application processes this message, it should return zero.

martinss:
perfecto carmamezo :)
ahora una pregunta y si quiero agregarle otro proceso? con dos..

Eternal Idol:
Ahora me percato que tu codigo tenia:


--- Código: Text --- if (IDYES)  
Obviamente eso evalua siempre a TRUE al ser IDYES diferente de 0 y se ejecuta siempre la llamada a DestroyWindow ...

Si queres mas procesos a comprobar es muy simple:


--- Código: Text --- if (  (Check("win.exe")) || (Check("whatever.exe")) || (Check("Other.exe")) ){}  

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa