Red de conocimiento informático - Computadora portátil - Cómo hacer referencia a imágenes de fondo en lenguaje C

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