HBITMAP hbm=CreateDIBSection(hdc,(BITMAPINFO*)&bih,DIB_RGB_COLORS,&bits,NULL,NULL);如何讲bmp图像中的数据填充进去、
亿分感谢
~~
亿分感谢
~~
解决方案 »
- 大家好,请问,MFC中对话框是自己画的,移动的时候没有边框,请问怎么画?大家帮忙出个主意。能不能用CRectTracker?
- 浮点数精度的小问题
- CAnimateCtrl 播放AVI文件 高手请进
- 100分求解析得到web services返回的数组~
- 在一个单文档基本mfc程序中,怎样创建一个对话框覆盖在视上面?
- 紧急求助:用MSChart画曲线,曲线以生成,但在图上怎么用鼠标改以生成的曲线?MSChart支持吗?若不支持有别的控件吗?解决立即结帖,谢谢!
- 从哪可以下载到pc_lint的软件?
- 谁能解答一下makefile是什么,怎么用的,谢谢?
- 2910元买这个电脑值不值?
- 从年份作为函数输入参数,横向输出该年的日历(每行四个月)?
- 为什么GetMenuItemInfo()总是取不到Menu的文本呢?
- 求算法或思路,黑白位图中,怎样把CA两个字符平移分隔开?(字符不相连,C可能部分在A的左下方,非一条直线能隔开)
不知道怎么操作了
//功能: 通过位图文件名创建位图对象
//参数: hDC设备句柄; lpszFileName位图文件名
//返回: 创建成功返回true,否则返回false
BOOL CMyBitmap::Create(HDC hDC, LPSTR lpszFileName)
{
//先判断,如果位图不空
if(m_hBmp != NULL)
{
::DeleteObject(m_hBmp);
m_hBmp = NULL;
}
//读位图文件,得到位图句柄
HANDLE hFile = CreateFile(
lpszFileName,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(hFile == INVALID_HANDLE_VALUE)
return FALSE;
//读位图文件头
BITMAPFILEHEADER bmpFileHeader;
DWORD dwNumberOfBytesRead;
if(ReadFile(hFile, (LPVOID)&bmpFileHeader, sizeof(BITMAPFILEHEADER), &dwNumberOfBytesRead, NULL) == 0)
{
CloseHandle(hFile);
return FALSE;
}
//读位图信息
BITMAPINFO *pBmpInfo = new BITMAPINFO;
if(ReadFile(hFile, pBmpInfo, sizeof(BITMAPINFOHEADER), &dwNumberOfBytesRead, NULL) == 0)
{
CloseHandle(hFile);
return FALSE;
}
m_iWidth = pBmpInfo->bmiHeader.biWidth;
m_iHeight = pBmpInfo->bmiHeader.biHeight;
//读位图数据
PVOID pBmpData;
//创建DIB位图句柄
m_hBmp = CreateDIBSection(hDC, pBmpInfo, DIB_RGB_COLORS, (PVOID *)&pBmpData, NULL, 0);
if(m_hBmp == NULL)
return FALSE;
else //读位图数据
if(ReadFile(hFile, pBmpData, pBmpInfo->bmiHeader.biSizeImage, &dwNumberOfBytesRead, NULL) == 0)
{
CloseHandle(hFile);
return FALSE;
}
CloseHandle(hFile);
return TRUE;
}