C/Visual C - AYUDA !!! ASIGNAR CBYTEARRAY A CSTATIC Y VICEVERSA

 
Vista:

AYUDA !!! ASIGNAR CBYTEARRAY A CSTATIC Y VICEVERSA

Publicado por José Luis De Cáceres (6 intervenciones) el 19/05/2001 18:00:35
Por favor, necesito saber cómo se puede realizar la asignación de un objeto CByteArray a un CStatic y viceversa. Mi problema surge al querer manejar unos campos de imágenes de una bd y querer mostrar dichos campos a través de miembros static de cuadros de diálogo.
Estoy manejando VC++; he realizado la bd con estilo DAO (he probado tanto estático (DFX) como dinámico (funciones Get/SetFieldValue); el campo imagen de la bd es de tipo CByteArray; y el campo del cuadro de diálogo a través del cual mostrar esa imagen de la bd es de tipo CStatic.
Si hay alguna otra forma de poder manejar (tanto insertar, como mostrar y eliminar) los campos imágenes de la bd a través de cuadros de diálogo, por favor, coméntenmela.
Gracias por todo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Asignación de un objeto CByteArray a un objeto CStatic y viceversa

Publicado por Alejandro (1222 intervenciones) el 25/09/2024 17:43:55
Para asignar un objeto `CByteArray` a un objeto `CStatic` y viceversa en un cuadro de diálogo en Visual C++, puedes seguir los siguientes pasos:

1. Obtén un puntero al objeto `CStatic` en tu cuadro de diálogo utilizando la función `GetDlgItem` y el ID del control `CStatic`. Por ejemplo:

1
CStatic* pStaticControl = (CStatic*)GetDlgItem(IDC_STATIC_CONTROL);

2. Para asignar un objeto `CByteArray` a un objeto `CStatic`, puedes utilizar la función `SetBitmap` o `SetIcon` del objeto `CStatic`. Sin embargo, ten en cuenta que estos métodos solo admiten imágenes en formato bitmap o icono, respectivamente. Si tu objeto `CByteArray` contiene una imagen en otro formato, deberás convertirla al formato adecuado antes de asignarla al objeto `CStatic`. Aquí tienes un ejemplo de cómo asignar un objeto `CByteArray` a un objeto `CStatic` utilizando `SetBitmap`:

1
2
3
4
CByteArray byteArray; // Tu objeto CByteArray con la imagen
CBitmap bitmap;
bitmap.CreateBitmap(Width, Height, NumPlanes, BitsPerPixel, byteArray.GetData());
pStaticControl->SetBitmap(bitmap);

3. Para asignar un objeto `CStatic` a un objeto `CByteArray`, puedes utilizar la función `GetBitmap` o `GetIcon` del objeto `CStatic` para obtener la imagen en formato bitmap o icono, respectivamente. Luego, puedes utilizar las funciones de la clase `CBitmap` o `CIcon` para extraer los datos de la imagen y asignarlos a tu objeto `CByteArray`. Aquí tienes un ejemplo de cómo asignar un objeto `CStatic` a un objeto `CByteArray` utilizando `GetBitmap`:

1
2
3
4
5
6
7
CBitmap bitmap;
pStaticControl->GetBitmap(bitmap);
BITMAP bmp;
bitmap.GetBitmap(&bmp);
CByteArray byteArray;
byteArray.SetSize(bmp.bmWidthBytes * bmp.bmHeight);
bitmap.GetBitmapBits(bmp.bmWidthBytes * bmp.bmHeight, byteArray.GetData());

Recuerda que estos ejemplos asumen que estás trabajando con imágenes en formato bitmap. Si estás utilizando otro formato de imagen, deberás adaptar el código para realizar la conversión adecuada.

Espero que esta información te sea útil. ¡Buena suerte con tu proyecto, José!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar