为何图片显示不出来??

忙碌的小毛驴 忙碌的小毛驴 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在对话框中读取图片。
void CModifyDlg::OnBnClickedModify()
{
// TODO: 在此添加控件通知处理程序代码
CDC *pDC = GetDC();
long* m_pBmpDataSrc;
long* m_pBmpDataDes;
long* p_tmp;
BITMAPINFO *m_pbmpinfo,m_bmp;

HBITMAP hbmp=(HBITMAP)LoadImage(::AfxGetResourceHandle(),"D:\\shufa.bmp",
IMAGE_BITMAP,0, 0,LR_DEFAULTCOLOR|LR_LOADFROMFILE);
m_bmp.bmiHeader.biSize=sizeof(m_bmp.bmiHeader);
m_bmp.bmiHeader.biBitCount=0;

int bmpWidth;
int bmpHeight;
GetDIBits(pDC->GetSafeHdc(),hbmp,0,1,NULL,&m_bmp,DIB_RGB_COLORS);
bmpWidth=m_bmp.bmiHeader.biWidth;
bmpHeight=m_bmp.bmiHeader.biHeight;

p_tmp=(long*)malloc(bmpWidth*bmpHeight*m_bmp.bmiHeader.biBitCount+sizeof(BITMAPINFO));
m_pBmpDataDes=(long*)malloc(bmpWidth*bmpHeight*m_bmp.bmiHeader.biBitCount);
m_pbmpinfo=(BITMAPINFO*)p_tmp;
m_pBmpDataSrc=p_tmp+sizeof(BITMAPINFO);//m_pBmpDataSrc因为是真彩色图,所以已经指向了数据区
memcpy(p_tmp,(const void*)&m_bmp,sizeof(BITMAPINFOHEADER));
GetDIBits(pDC->GetSafeHdc(),hbmp,0,m_bmp.bmiHeader.biHeight,m_pBmpDataSrc,
m_pbmpinfo,DIB_RGB_COLORS);

BITMAPINFOHEADER RGB32BITSBITMAPINFO=
{sizeof(BITMAPINFOHEADER),m_bmp.bmiHeader.biWidth,m_bmp.bmiHeader.biHeight,
1,32,BI_RGB,0,0,0,0};
SetDIBitsToDevice(pDC->GetSafeHdc(),0,0,bmpWidth,
bmpHeight,0,0,0,bmpHeight,
m_pBmpDataDes,(LPBITMAPINFO)&RGB32BITSBITMAPINFO,DIB_RGB_COLORS);
}
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
忙碌的小毛驴
VC/MFC 16,550 成员 421,606 内容