在VC6.0的MFC中,如何在对话框中实现打开图像(BMP),请各位帮帮忙...谢谢!

要求:设置一个按钮(OpenImage)用来导入要打开需要打开的图像的信息,设置一个静态对话框(IDC_FRAME)用来显示图像...本人是VC初学者,研究很久,无法解决,希望各位VC高手,特别是利用VC做图像处理的帮帮忙,我的QQ:351927212,希望得到您们的帮助,谢谢!

你那个控件应该是静态文本框吧,在我的知识范围内,我无法实现在静态文本框显示图片,如果用位图控件的话,还能弄出一张背景图。
但是,如果像做一个图像浏览器,像打开什么图片就什么图片的话,不建议你用这种方法。
本来MFC对DIB图像支持就不是很足够,你需要找一些别人写好的CDib.h和CDib.cpp文件,才能方便地使用BMP图片。
勿在浮沙筑高台,要先熟悉MFC和在C++处理图片的相关知识之后,才开始写软件。例如openCV就是一个非常好用图像处理方面的开源SDK开发包,如果你熟悉了openCV,对于你上面的问题,只需要添加很少的程序就可以实现了
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-25
可以用opencv
按钮的响应函数
src=NULL;
CFileDialog dlg(TRUE, _T("*.bmp"),"",OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,"image files (*.bmp; *.jpg) |*.bmp;*.jpg|All Files (*.*)|*.*||",NULL);
char title[]= {"Open Image"};
dlg.m_ofn.lpstrTitle= title;
if (dlg.DoModal() == IDOK)
{
filePath= dlg.GetPathName();
//LoadBmpFile(filePath);
src=cvLoadImage(filePath);
DrawPicToHDC(src,IDC_FRAME);
}
第2个回答  2011-04-25
我的QQ,95101那个,
lpBits=lpBitmap+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
if (lpBackup) delete lpBackup;
lpBackup=new BYTE[nLen];
memcpy(lpBackup,lpBitmap,nLen);
}本回答被提问者采纳
第3个回答  2011-04-25
帮你顶一下

...对话框中实现打开图像(BMP),请各位帮帮忙...谢谢!
你那个控件应该是静态文本框吧,在我的知识范围内,我无法实现在静态文本框显示图片,如果用位图控件的话,还能弄出一张背景图。但是,如果像做一个图像浏览器,像打开什么图片就什么图片的话,不建议你用这种方法。本来MFC对DIB图像支持就不是很足够,你需要找一些别人写好的CDib.h和CDib.cpp文件,才...

vc6.0实现显示图片预览的打开对话框
CString exp;exp=GetFileExt();exp.MakeUpper(); \/\/在比较扩展名时不区分大小写 if(exp == "BMP") \/\/显示位图 { m_bitmap.SetIcon(NULL);m_bitmap.ModifyStyle(SS_ICON,SS_BITMAP);m_bitmap.SetBitmap((HBITMAP)LoadImage(NULL,GetPathName(),IMAGE_BITMAP,100,100,LR_LOADFROMFILE));CF...

VC6.0中用MFC的pic控件如何显示一张图片?
画在窗口上 属性里type设置bitmap 在下面的image里选择图片就可以了 (只支持bmp格式)

VC6.0MFC中怎样给对话框添加背景图片?
你可以用画图,或者其他看图工具,打开图片后另存为bmp格式 再插入的时候,就会变成位图附加到项目中了 附加了以后,图片的id会变成IDB_BITMAP1,你可以改成自己想要的名字

如何用VC++6.0在窗口里显示一个位图?请高手指点
1.打开vc++6.0,选择“文件”->“新建",打开新建对话框,选择“工程”->MFC AppWizard [exe]->选择保存路径及文件名ddd,选择单文档->完成。2.打开窗口左下角选择Re..,在Dialog上右击,选择插入->Bitmap->引入->引入位图。3.选择Cl..,展开CDdddView->OnDraw,双击OnDraw,进入编程界面。void...

VC++6.0 MFC进行图像处理,现在想要学习VC++数字图像处理的应用,不知如...
所以在最后一步,你在选择view的种类时最好选择CScorllView。然后至于怎么编写,要实现什么样的功能,就要看你这个程序的设计方案了。但是有一点是必须要做的就是打开图像,其实这个和其它的是一样的,也是在OnDraw()函数中写出来。希望能够帮助你,如果还有什么疑问请追问。

[VC6.0 MFC] 关于动态加载.jpg格式图片
OleLoadPicture可以动态加载。Ole32.dll olepro32.dll eg:void DisplayImage(HDC hDC, LPCTSTR szImagePath){ HANDLE hFile=CreateFile(szImagePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); \/\/从指定的路径szImagePath中读取文件句柄 DWORD dwFileSize=...

VC6.0环境 MFC对话框背景模糊不清
VC6资源只是不支持显示编辑超过256色的图片,应该与资源无关,你需要检查OnInitDialog中显示图片的代码

在VC6.0中如何调整bmp大小
输入:hWnd 窗体或控件句柄 strImgFilename 待显示的图片文件名 x x坐标 y y坐标 width 宽 height 高 输出:{ typedef int (WINAPI ICEPUB_DISPIMG2)( HWND hWnd,char *strImgFilename,int x,int y,int width,int height);ICEPUB_DISPIMG2 *icePub_dispImg2 = 0;HINSTANCE hDLLDrv = ...

VC++的MFC中,如何给基本对话框加上JPG格式的背景图片
楼上那些人都是扯淡高手。如果是vs2008那么直接使用CImage类的方法可以直接读取jpg文件。他还有个render方法来输出图片。如果是vc6.0那么就需要下载3个文件才可以使用cimage类。呵呵 Image image;image.Load(L"D:\\\\用户目录 \\\\Pictures\\\\example.jpg");image.Draw(GetDC()->m_hDC,CRect(0,0,320...

相似回答