VC基于对话框导入bmp图片

VC基于对话框导入bmp图片,使用CDib类,要是导入第二张图片,两张图片重叠了,为什么啊,还用了GlobalLock我不知道为什么啊,后续还要处理图片。这是打开图片vo... VC基于对话框导入bmp图片,使用CDib类,要是导入第二张图片,两张图片重叠了,为什么啊,还用了GlobalLock我不知道为什么啊,后续还要处理图片。
这是打开图片
void CEyesDetectDlg::OnOpenfile()
{
// TODO: Add your control notification handler code here
CFile file;
CFileException fe;
CFileDialog dlg(TRUE, "*.BMP", NULL, NULL,"位图文件(*.BMP)|*.bmp;*.BMP|");
if(IDOK == dlg.DoModal())
{
if (!file.Open(dlg.GetPathName(), CFile::modeRead,&fe))
return;
if(m_pDib != NULL)
{
delete m_pDib;
m_pDib = NULL;
}
m_pDib = new CDib;
TRY
{
m_hDIB = m_pDib->LoadFile(file);
}
CATCH (CFileException, eLoad)
{
file.Abort();
m_hDIB = NULL;
if(m_pDib != NULL)
{
delete m_pDib;
m_pDib = NULL;
}
return;
}
END_CATCH
InitDib();//初始化DIB
// 判断读取文件是否成功
if (m_hDIB == NULL)
{
MessageBox("读取图像时出错!可能是不支持该类型的图像文件!");
if(m_pDib != NULL)
{
delete m_pDib;
m_pDib = NULL;
}
return;
}
}
DrawPicture();
return;
}
展开
 我来答
bhtzu
2013-04-17 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4071万
展开全部
前面问过一次了吧。
GlobalLock,锁定内存中指定的内存块,并返回一个地址值,令其指向内存块的起始处。你这里的用处很明显,就是通过句柄获得指针啊!!
至于图片显示,没代码真没法知道你为什么。。。。贴OnPaint和其它绘图代码上来吧。
更多追问追答
追问

追答
OnPaint里面没有处理吗?如果没有,
DrawPicture之前,调用一下Invalidate();就可以不是覆盖两张了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式