Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Mas Гость
|
Добавлено: Вс Ноя 23 2003 21:10 Заголовок сообщения: Как загрузить в переменную типа CBitmap файл с диска? |
|
|
Нужно что б, он ничем не отличался от того, который загружается из ресурсов функцией LoadBitmap(IDB_BITMAP) |
|
Вернуться к началу |
|
|
Anonymous Гость
|
Добавлено: Вс Ноя 23 2003 21:37 Заголовок сообщения: почитай MSDN по CBtimap(), там всё написано (-) |
|
|
- |
|
Вернуться к началу |
|
|
Mas Гость
|
Добавлено: Пн Ноя 24 2003 02:43 Заголовок сообщения: Re: Как загрузить в переменную типа CBitmap файл с диска? |
|
|
Спасибо, уже читал!!! Может я немного туповат,но я этого не нашел! |
|
Вернуться к началу |
|
|
Mas Гость
|
Добавлено: Пн Ноя 24 2003 02:46 Заголовок сообщения: Re: почитай MSDN по CBtimap(), там всё написано (-) |
|
|
Уже пробовал, ниче не нашел. Но все равно спасибо за совет! |
|
Вернуться к началу |
|
|
Anonymous Гость
|
Добавлено: Пн Ноя 24 2003 23:06 Заголовок сообщения: посмотри (+) |
|
|
int nCount, nSize; BITMAPFILEHEADER bmfh; try { nCount = pFile->Read((LPVOID) &bmfh, sizeof(BITMAPFILEHEADER)); if(nCount != sizeof(BITMAPFILEHEADER)) { throw new CException; } if(bmfh.bfType != 0x4d42) { throw new CException; } nSize = bmfh.bfOffBits - sizeof(BITMAPFILEHEADER); m_lpBMIH = (LPBITMAPINFOHEADER) new char[nSize]; m_nBmihAlloc = m_nImageAlloc = crtAlloc; nCount = pFile->Read(m_lpBMIH, nSize); // info hdr & color table ComputeMetrics(); ComputePaletteSize(m_lpBMIH->biBitCount); MakePalette(); m_lpImage = (LPBYTE) new char[m_dwSizeImage]; nCount = pFile->Read(m_lpImage, m_dwSizeImage); // image only } catch(CException* pe) { AfxMessageBox("Read error"); pe->Delete(); return FALSE; } return TRUE;
или
HANDLE hFile = ::CreateFile(strPathname, GENERIC_WRITE | GENERIC_READ, bShare ? FILE_SHARE_READ : 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); ASSERT(hFile != INVALID_HANDLE_VALUE); DWORD dwFileSize = ::GetFileSize(hFile, NULL); HANDLE hMap = ::CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 0, NULL); DWORD dwErr = ::GetLastError(); if(hMap == NULL) { AfxMessageBox("Empty bitmap file"); return FALSE; } LPVOID lpvFile = ::MapViewOfFile(hMap, FILE_MAP_WRITE, 0, 0, 0); // map whole file ASSERT(lpvFile != NULL); if(((LPBITMAPFILEHEADER) lpvFile)->bfType != 0x4d42) { AfxMessageBox("Invalid bitmap file"); DetachMapFile(); return FALSE; } AttachMemory((LPBYTE) lpvFile + sizeof(BITMAPFILEHEADER)); m_lpvFile = lpvFile; m_hFile = hFile; m_hMap = hMap; |
|
Вернуться к началу |
|
|
Mas Гость
|
Добавлено: Вт Ноя 25 2003 01:26 Заголовок сообщения: Re: посмотри (+) |
|
|
Большое ПАСИБО!!! Если вдруг что обращайся, чем смогу, помогу! |
|
Вернуться к началу |
|
|
|