• Sábado 14 de Diciembre de 2024, 14:46

Autor Tema:  Dialogos Y Vistas  (Leído 1026 veces)

gabrielz1

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Dialogos Y Vistas
« en: Miércoles 25 de Febrero de 2004, 08:35 »
0
hola amigos del foro de visual c++, bueno tengo un problema sobre los dialogos,  lo que quiero hacer es que cuando yo ingrese un numero cualquiera en una caja de dialogo se imprime en la vista, y asi sucesibamente, estube haciendo lo siguiente, primero cree mi menu que llamara al dialogo, luego lo llama al dialogo con Domodal(), despues ingrese datos ala caja pero no me imprime solo se queda el numero con que inicie en el contructor de mi dialogo.
ice lo siguiente:

CPruebaView::OnAbrir()
{//con esto llamo a mi dialogo desde un menu correcto?
CDialogo1 Ing(this);
Ing.DoModal();
}

genero mi puntero al documento
class CDialogo1 : public CDialog
{
public:
CPruebaDoc *m_pDoc;
...
void CDialogo1::Ingresar()
{
UpdateData(true);
m_pDoc->m_Numero=m_Numero1;

}

i lo llamo en la vista

void CPruebaView::OnDraw(CDC* pDC)
{
CPruebaDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

CString Dato;
Dato.Format("%s%i",Dato,pDoc->m_Numero )
pDC->TextOut(100,100,Dato);



pero de todo esto no me sale nada solo me imprime el codigo almacenado nada mas.

como puedo hacer para que el numero que yo ingrese en la caja de dialogo  se imprima en la vista cada ves que yo llamo a la caja de dialogo incieto un numero y ese numero debe reflejarce en la vista.
no se si me dejo entender pero me gustaria que me saquen de esa duda.
gracias.

navisoft

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
    • http://www.latindevelopers.com
Re: Dialogos Y Vistas
« Respuesta #1 en: Martes 16 de Marzo de 2004, 23:37 »
0
lo que puedes hacer es agregarle una linea a tu codigo
Código: Text
  1.  
  2. CPruebaView::OnAbrir()
  3. {
  4.    CDialogo1 Ing(this);
  5.    if(Ing.DoModal() == IDOK){
  6.       m_Numero = Ing.m_Numero1;
  7.       Invalidate();
  8.    }
  9. }
  10.  
  11.  

Otra opcion es el siguiente codigo

Código: Text
  1.  
  2.  
  3. CPruebaView::OnAbrir()
  4. {
  5.    CDialogo1 Ing(this);
  6.    Ing.m_pDoc = GetDocument();
  7.    Ing.DoModal();  
  8. }
  9.  
  10.  

pero en tu funcion ingresar no estas invocando al repintado de la vista .. puedes hacerlo con la funcion  Invalidate();


--
navisoft
www.programacion.uni.cc