Pasar un EDITBOX a una función miembro

Hola roly.
Mira, construyo una aplicación GUI en Visual C++ 6.0, en el modo FormView, básicamente introduzco un valor de un editbox con variable m_sin y ese valor lo convierto a radianes... Bueno, ahora necesito tomar ese valor y usarlo en una función miembro llamada sum() de una clase T.
No puedo hacer que ese valor que tomo vaya a sum() para usarlo allí...
¿O puedo hacer que m_sin entre de una a la función miembro? ¿Por qué no me lo permite?...
Te agradezco mucho roly por tu ayuda.

1 Respuesta

Respuesta
1
Si te es posible mandame la declaración de la clase donde tienes el editbox y la función miembro.
La analizo y te digo cuál es el posible error.
Aunque por arriba me parece que no estás utilizando la función UpdateData(...) para adquirir el valor del editbox
Hola roly mira ahí te mando el programa espero que sea claro...
Esta parte va en el view.h
class T{
double sin;
public:
double mostrar();
double suma();
T(){sin=0;};
};
ESTA PARTE VA EN EL VIEW.CPP
// CSenforView construction/destruction
CSenforView::CSenforView()
: CFormView(CSenforView::IDD)
{
//{{AFX_DATA_INIT(CSenforView)
m_sin = 0.0;
m_res = 0.0;
//}}AFX_DATA_INIT
// TODO: add construction code here
}
F(int d) {
int r=1;
if (d==0)
r=1;
else
for(int x=1;x<=d;x++)
r=r*x;
return r;
}
AHORA...
// CSenforView message handlers
void CSenforView::OnButton1()
{
UpdateData(true);
T z;
m_res=z.suma();
UpdateData(false);
}
double T::suma()
{
int sw,p,h,y,f,k;
double t,m,x;
sw=p=h=f=1;
k=5;//ESTE VALOR DE K ES EL QUE NECESITO QUE ENTRE POR EL EDITBOX
//PARA CONVERTIRLO A RADIANES Y USARLO EN EL WHILE
if(k<0)
k=k+360;
if(k>=180)
k=-1*(k-180);
x=k*(3.141592654/180);
while(sw){
y=F(p);
m = pow( x,p );
t=m/y;
if (f<=7)
if(h%2==1)
sin=sin+t;
else
sin=sin-t;
else
sw=0;
p=p+2;
h++;
f++;
}
return sin;
}
double T::mostrar()
{
return sin;
}
Gracias por responderme tan rapido
Puedes hacer dos cosas.
1. Pasarle a la función suma como parámetro el dato que quieres convertir
PAra esto debes cambier la declaración de la función suma de esta manera.
class T{
double sin;
public:
double mostrar();
double suma(int valor);
T(){sin=0;};
};
double T::suma(int valor)
{
int sw,p,h,y,f,k;
double t,m,x;
sw=p=h=f=1;
k=valor;
if(k<0)
k=k+360;
if(k>=180)
k=-1*(k-180);
x=k*(3.141592654/180);
while(sw){
y=F(p);
m = pow( x,p );
t=m/y;
if (f<=7)
if(h%2==1)
sin=sin+t;
else
sin=sin-t;
else
sw=0;
p=p+2;
h++;
f++;
}
return sin;
}
Entonces el llamado a la función seriá así:
void CSenforView::OnButton1()
{
UpdateData(true);
T z;
m_res=z.suma(m_sin);
UpdateData(false);
}
2. Hacer una función en la clase T que asigne a una variable el valor a convertir y este sería el que utilice la función suma en vez de k.
class T{
double sin;
int valor;
public:
void setvalor(int iValor);
double mostrar();
double suma();
T(){sin=0;};
};
void T::setvalor(int iValor)
{
valor = iValor
}
Entonces la funcion suma quedaría así:
double T::suma()
{
int sw,p,h,y,f;
double t,m,x;
sw=p=h=f=1;
if(valor<0)
valor+=360;
if(valor>=180)
valor=-1*(valor-180);
x=valor*(3.141592654/180);
while(sw){
y=F(p);
m = pow( x,p );
t=m/y;
if (f<=7)
if(h%2==1)
sin=sin+t;
else
sin=sin-t;
else
sw=0;
p=p+2;
h++;
f++;
}
return sin;
}
entonces el llamado a la funcion sería:
void CSenforView::OnButton1()
{
UpdateData(true);
T z;
z.setvalor(m_sin);
m_res=z.suma();
UpdateData(false);
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas