Cómo hacer referencia a imágenes de fondo en lenguaje C
Agregue un control de imagen directamente y luego cargue una imagen
O cargue la imagen dinámicamente: HRESULT ShowPic(char *lpstrFile, HWND hWnd)
{
HDC hDC_Temp=GetDC(hWnd);
IPicture *pPic;
IStream *pStm;
BOOL bResult;
HANDLE hFile=NULL;
DWORD dwFileSize, dwByteRead;
//Abrir archivo gráfico
hFile=CreateFile(lpstrFile,GENERIC_READ,
FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile!=INVALID_HANDLE_VALUE)
{
dwFileSize=GetFileSize(hFile, NULL); //Obtiene el número de bytes en el archivo
if (dwFileSize==0xFFFFFFFF)
Devuelve E_FAIL;
}
else
{
return E_FAIL;
}
/ Asignar espacio de almacenamiento global
HGLOBAL hGlobal = GlobalAlloc(GMEM_ MOVEABLE, dwFileSize);
LPVOID pvData = NULL;
if (hGlobal == NULL)
return E_FAIL;
if ((pvData = GlobalLock(hGlobal)) == NULL)/Bloquear el bloque de memoria asignado
return E_FAIL
ReadFile(hFile, pvData, dwFileSize, amp; dwByteRead; , NULL); //Leer el archivo en la memoria intermedia
GlobalUnlock( hGlobal
CreateStreamOnHGlobal(hGlobal, TRUE, amp; pStm); //Carga el archivo de gráficos
bResult=OleLoadPicture(pStm, dwFileSize, TRUE, IID_IPicture, (LPVOID*)&pPic);
if(FAILED(bResult))
return E_FAIL;
OLE_XSIZE_HIMETRIC hmWidth; //El ancho real de la imagen en pulgadas
OLE_YSIZE_HIMETRIC hmHeight; //La altura real de la imagen en pulgadas
Imagen-gt;get_Width(a
mp;hmWidth);
Pic-gt;get_Height(amp;hmHeight);
//Convierte hmWidth y hmHeight a distancia en píxeles, 1 pulgada = 25,4 mm
int nWidth = MulDiv(hmWidth, GetDeviceCaps(hDC_Temp, LOGPIXELSX), 2540);
int nHeight = MulDiv(hmHeight, GetDeviceCaps(hDC_Temp, LOGPIXELSY),
); // Salida de gráficos a la pantalla (un poco como BitBlt)
bResult=pPic-gt; Render(hDC_ Temp, 0, 0, nWidth, nHeight, 0, hmHeight, hmWidth, -hmHeight, NULL) ;
hmHeight, NULL);
pic-gt; Release();
CloseHandle( hFile);
if (SUCCEED(bResult))
{
devuelve S_OK;
}
si no
{
return E_FAIL;
}
}
Lo anterior es el código de implementación específico de la función. El primer parámetro es. la posición de almacenamiento de la imagen, el segundo parámetro es el identificador de la ventana
De esta manera, la imagen se puede mostrar dinámicamente. Acerca de vc, se ha compilado y ejecutado para pruebas
- Tecnología. Departamento de Internet de las Cosas Alianza Universitaria y Empresarial