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


App con Dlg, manejo hilo de Ejecucion desde otra clase

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

Moderador: latindeveloper

App con Dlg, manejo hilo de Ejecucion desde otra clase

Notapor ibarra el Vie Sep 23, 2005 9:53 am

Hola a todos,

Necesito saber, como cuando tengo una "App basica con un Dlg, Como manejo hilo de Ejecucion " me explico mejor :

tengo un listbox en un Dlg y deseo mostrar todos los eventos o mensajes que hay en mi hilo principal normalmente la clase CWinApp ...

Para dar una information mas detallada hago lo mismo con el procedimiento: int main(int argc, char* argv[]) {} y dentro del mismo con una applicacion consola que hice para probar; Uso

cout << "cualquier cosa"<< endl;

Pero en realidad lo que quiero es insertar esta info en un listbox, mi problema es que :

class CMi-Clase : public CWinApp : es la que lleva el hilo principal y
class CMi-Dlg : public CDialog es el dialogo donde quiero mostrar las infos pero cuando quiero hacerlo estoy fuera de todo procedimiento del dialogo es decir estoy en la implementacion de otra clase que voy a llamar en algun momento ....
No creo que me haya explicado bien porque ni yo mismo entiendo exactamente pero agradeceria mucho si alguien me escriba recomendaciones de acuaerdo a las experiencias que tienen ....

Muchas gracias de antemano
:shock:
ibarra
Usuario Activo
Usuario Activo
 
Mensajes: 34
Registrado: Vie Abr 15, 2005 8:26 am

Re: App con Dlg, manejo hilo de Ejecucion desde otra clase

Notapor latindeveloper el Dom Sep 25, 2005 11:08 am

Hola,

puedes crear una variable CMi-Dlg *dialogo; en tu CMi-Clase,

Al momento de crear una instancia de CMi-Clase puedes asignarle el puntero del dialogo actual

Código: Seleccionar todo
CMi-Clase clase;
clase.dialogo = &dlg; // dlg creado en InitInstance del App


Luego puedes utilizar todo lo que quieras del dialogo desde CMi-Clase,

Código: Seleccionar todo
if(dialogo)
{
    dialogo->tuCListCtrl->....;
}


inicialmente *dialogo debe ser null para no tener problemas.
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru

Re: App con Dlg, manejo hilo de Ejecucion desde otra clase

Notapor ibarra el Lun Sep 26, 2005 3:56 am

Hola y gracias por responderme,

hay cosas que no entiendo muy bien aun,


latindeveloper escribió:Hola,

puedes crear una variable CMi-Dlg *dialogo; en tu CMi-Clase,

Al momento de crear una instancia de CMi-Clase puedes asignarle el puntero del dialogo actual


En ese momento lo que tengo es esto; que es introducido por defecto por VC++:

CMi_Dlg dlg;
m_pMainWnd = &dlg;


int nResponse = dlg.DoModal();

if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel²

return FALSE;


Código: Seleccionar todo
CMi-Clase clase;
clase.dialogo = &dlg; // dlg creado en InitInstance del App



------------------------ Pregunta ---------------
para ti quien es dialogo en este caso pMainWnd en mi codigo ?????
--------------------------------------------------

Luego puedes utilizar todo lo que quieras del dialogo desde CMi-Clase,

Código: Seleccionar todo
if(dialogo)
{
    dialogo->tuCListCtrl->....;
}


inicialmente *dialogo debe ser null para no tener problemas.


------------------------ Pregunta ---------------
Despues imaginemos que tienes como ya has visto tengo tres clases:

1-CMi-Dlg ; 2-CMi-Clase y 3- Clase3 , por ejemplo:

-----1
1-) Ahora en el init de la clase CMi-Clase lo que debo hacer es (pregunta)??????:

CMi_Dlg dlg;
m_pMainWnd = &dlg;
---- (Estaba asi por defecto de VC++)

o tengo que cambiarlo ?????????????

-----2
2-) Segundo dime si despues por ejemplo si voy a usar dentro de la implementacion de una funcion de Clase3 lo que hago es :


Clase3::FUNCION1()
{

CMi-Clase clase; //como tu me dices ....
//esta es la declaracion de la variable de la clase principal (yo la habia hecho de otra manera dima si esta bien o no ):

CMi-Clase *clase = (CMi-Clase*)AfxGetApp();

//y esta estaba forma de declaracion que acabo de escribirte la habia hecho declarada como variable global ...

despues tu me dices que haga :

clase.(quien es el Dlg principal en este caso ) segun lo que escribistes es ?????? dialogo ??????

}
-----------------------------------------------------

pero yo no se quien es cuando llamo (clase. quien es aqui el dialogo) -----> despues tengo el problema mas complicado para mi es lo que normalmente yo muestro por pantalla cuando hago un :

cout << "cualquier cosa" << endl; como lo obtengo en un CString o otra cosa no importa, pero como lo tengo para poderlo tirar en el Lixtbox ....

Disculpa, que repita a veces la pregunta de diferente maenra pero es que yo mismo estoy enredado y no se bien como expliacrlo...

Te reitero las gracias y espero respuesta de "latindevelopers"

GRACIAS
ibarra
Usuario Activo
Usuario Activo
 
Mensajes: 34
Registrado: Vie Abr 15, 2005 8:26 am


Volver a Visual C++

¿Quién está conectado?

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