Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Dialogo no modal

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

Dialogo no modal

Notapor gabrieluno el Mié Oct 05, 2005 6:43 am

Hola amigos, quiero que me ayuden en un problema que tengo con los dialogos no modales.
Quiero imprimir en la vista una respuesta de una opercion que pueda realizar pero con dialogo no modal.
porque con dialogo modal seria asi

Código: Seleccionar todo
CDialogoDlg dlg(this);
if(dlg.DoModal()==IDOK)
{
variable1 = dlg.Variable1;
varieble2 = dlg.Variable2;
Invalidate(true);
}


en Draw seria

Código: Seleccionar todo
char respuesta[10];
//....
sprintf(respuesta,"la suma sera %0.3f",variable1+variable2);
pDC->TextOut(100,100,respuesta);



y bueno ello me imprime en la vista la respuesta de una operacion suma que los datos lo aya ingresado en el cuadro de dialogo, entonces lo que quiero es hacer lo mismo pero con dialogo no modal

les agradeseria me que ayudaran, a resolver el problema. gracias.
gabrieluno
Usuario Activo
Usuario Activo
 
Mensajes: 57
Registrado: Mar May 17, 2005 11:26 am

Re: Dialogo no modal

Notapor latindeveloper el Mié Oct 05, 2005 5:23 pm

La linea
if(dlg.DoModal()==IDOK) se espera a que DoModal le devuelva un valor.

Lo que deseas hacer debe ser hecho desde el dialogo, es decir que envias un mensaje al MainFrame (si fuera el caso) con el evento que deses.

Código: Seleccionar todo
void CTuDialogo::Funcion()
{
   AfxGetMainWnd()->PostMessage(WM_COMMAND,ID_ALGUNEVENTO);
}


y listo.
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru

Notapor gabrieluno el Jue Oct 06, 2005 4:35 pm

hola latindeveloper, nose si me podrias esplicar mas sobre tu respuesta, te agradeseria mucho. gracias
gabrieluno
Usuario Activo
Usuario Activo
 
Mensajes: 57
Registrado: Mar May 17, 2005 11:26 am

enviar mensajes a otras ventanas

Notapor latindeveloper el Jue Oct 13, 2005 8:43 am

gabrieluno escribió:hola latindeveloper, nose si me podrias esplicar mas sobre tu respuesta, te agradeseria mucho. gracias

Supongamos que en tu clase CMainFrame tienes un evento relacionado con el ID: ID_FILE_NEW (puedes crear tu propio evento con el classwizard), este evento esta relacionado a la vez con una funcion que es invocada cada vez que el evento ocurre.

Los eventos viajan en forma de mensajes. Para invocar a la funcion relacinoada con ese evento podemos hacer:

Código: Seleccionar todo
AfxGetMainWnd ()->PostMessage (WM_COMMAND, ID_FILE_NEW);


Esa llamada puedes hacerla desde cualqueir parte. incluso desde tu dialogo no modal.
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados