Soyez le premier à donner votre avis sur cette source.
Vue 6 545 fois - Téléchargée 671 fois
#include <windows.h> #include "resource.h" #include "bnJpg32.h" HBITMAP hbmp; int cxDib, cyDib, idximg; char *szimages[3] = {"Chat.jpg","Evol.gif","Verdi.bmp"}; void __stdcall ImgLoad() { HANDLE hfl; DWORD lenfl, val; HANDLE hheap; BYTE *pmem; BITMAP bmp; if(hbmp) {DeleteObject(hbmp); hbmp = 0;} hfl = CreateFile(szimages[idximg], GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, 0); if(hfl == INVALID_HANDLE_VALUE) return; lenfl = GetFileSize(hfl, 0); hheap = GetProcessHeap(); pmem = (BYTE*) HeapAlloc(hheap, 0, lenfl); if(pmem) ReadFile(hfl, pmem, lenfl, &val, 0); CloseHandle(hfl); if(!pmem) return; hbmp = bnBmpFromMemory(pmem, lenfl); HeapFree(hheap, 0, pmem); if(hbmp) { if(GetObject(hbmp, sizeof(bmp), &bmp)) { cxDib = bmp.bmWidth; cyDib = bmp.bmHeight; } } } void __stdcall onPaint(HWND hdlg) { PAINTSTRUCT ps; HDC hdc, memdc; RECT rct; hdc = BeginPaint(hdlg, &ps); if(hbmp) { GetClientRect(hdlg, &rct); memdc = CreateCompatibleDC(hdc); SelectObject(memdc, hbmp); StretchBlt(hdc, 0, 0, rct.right, rct.bottom, memdc, 0, 0, cxDib, cyDib, SRCCOPY); DeleteDC(memdc); } EndPaint(hdlg, &ps); } BOOL CALLBACK AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam) { switch(mssg) { case WM_PAINT: onPaint(hdlg); break; case WM_TIMER: if(++idximg > 2) idximg = 0; ImgLoad(); InvalidateRect(hdlg, 0, 0); break; case WM_INITDIALOG: SetClassLong(hdlg, GCL_HICON, (long)LoadIcon(0, IDI_APPLICATION)); idximg = 0; ImgLoad(); SetTimer(hdlg, 1, 1500, 0); return 1; case WM_COMMAND: if(wParam == IDCANCEL) {KillTimer(hdlg, 1); EndDialog(hdlg, 0);} } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, int) { DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_APP), 0, AppDlgProc, 0); return 0; }
Merci
ca me dit : bnJpg32.lib : fatal error LNK1106: invalid file or disk full: cannot seek to 0x3ee105d1
Ca vient de moi ??
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.