Windows/MFC
비트맵 (bitmap)
aucd29
2013. 10. 2. 17:36
제가 쓰고 있는 비트맵 로드 모듈입니다.
참조하세요. 첫번째 인자는 파일이름이구여. 두번째는 그림을 받을 cbitmap이구여, 세번째는 안넣으셔도 됩니다. 비트맵 사이즈가
필요할때가 있어서 넣었는데 안넣으셔도 동작합니다.
그럼 즐프...
[code]
BOOL LoadBitmap(CString strBitmapFile, CBitmap& pbitLoad, CSize* sizeBitmap = NULL);
BOOL CSimpleBitmapDraw::LoadBitmap(CString strBitmapFile, CBitmap& pbitLoad, CSize* sizeBitmap)
{
HANDLE hBitmapFile;
WIN32_FIND_DATA fd;
hBitmapFile = ::FindFirstFile(strBitmapFile, &fd);
if(hBitmapFile == INVALID_HANDLE_VALUE)
{
TRACE("\n----------------------------------------------------------------------------------\n");
TRACE("Error Position : BOOL CSimpleBitmapDraw::LoadBitmap(CString strBitmapFile, CBitmap& pbitLoad)\n");
TRACE("Error Info : File Not Found(hBitmapFile == INVALID_HANDLE)\n");
TRACE("----------------------------------------------------------------------------------\n");
return FALSE;
}
if(pbitLoad.m_hObject != NULL)
{
pbitLoad.DeleteObject();
}
pbitLoad.m_hObject = (HBITMAP)LoadImage(NULL, strBitmapFile, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
if(pbitLoad.m_hObject == NULL)
{
TRACE("\n----------------------------------------------------------------------------------\n");
TRACE("Error Position : BOOL CSimpleBitmapDraw::LoadBitmap(CString strBitmapFile, CBitmap& pbitLoad)\n");
TRACE("Error Info : pbitLoad.m_hObject == NULL\n");
TRACE("----------------------------------------------------------------------------------\n");
return FALSE;
}
BITMAP bmp;
GetObject(pbitLoad.m_hObject, sizeof(BITMAP), &bmp);
if(sizeBitmap != NULL)
{
sizeBitmap->cx = bmp.bmWidth;
sizeBitmap->cy = bmp.bmHeight;
}
return TRUE;
}
[/code]
참조하세요. 첫번째 인자는 파일이름이구여. 두번째는 그림을 받을 cbitmap이구여, 세번째는 안넣으셔도 됩니다. 비트맵 사이즈가
필요할때가 있어서 넣었는데 안넣으셔도 동작합니다.
그럼 즐프...
[code]
BOOL LoadBitmap(CString strBitmapFile, CBitmap& pbitLoad, CSize* sizeBitmap = NULL);
BOOL CSimpleBitmapDraw::LoadBitmap(CString strBitmapFile, CBitmap& pbitLoad, CSize* sizeBitmap)
{
HANDLE hBitmapFile;
WIN32_FIND_DATA fd;
hBitmapFile = ::FindFirstFile(strBitmapFile, &fd);
if(hBitmapFile == INVALID_HANDLE_VALUE)
{
TRACE("\n----------------------------------------------------------------------------------\n");
TRACE("Error Position : BOOL CSimpleBitmapDraw::LoadBitmap(CString strBitmapFile, CBitmap& pbitLoad)\n");
TRACE("Error Info : File Not Found(hBitmapFile == INVALID_HANDLE)\n");
TRACE("----------------------------------------------------------------------------------\n");
return FALSE;
}
if(pbitLoad.m_hObject != NULL)
{
pbitLoad.DeleteObject();
}
pbitLoad.m_hObject = (HBITMAP)LoadImage(NULL, strBitmapFile, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
if(pbitLoad.m_hObject == NULL)
{
TRACE("\n----------------------------------------------------------------------------------\n");
TRACE("Error Position : BOOL CSimpleBitmapDraw::LoadBitmap(CString strBitmapFile, CBitmap& pbitLoad)\n");
TRACE("Error Info : pbitLoad.m_hObject == NULL\n");
TRACE("----------------------------------------------------------------------------------\n");
return FALSE;
}
BITMAP bmp;
GetObject(pbitLoad.m_hObject, sizeof(BITMAP), &bmp);
if(sizeBitmap != NULL)
{
sizeBitmap->cx = bmp.bmWidth;
sizeBitmap->cy = bmp.bmHeight;
}
return TRUE;
}
[/code]