- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vc数字图像处理MFC图像显示具体步骤
vc++数字图像处理
MFC 图像显示具体步骤
1、建立当文档工程
步骤一:建立工程
进入vc集成开发环境,单击File菜单下的new,出现一个对话框,在对话框中选择Project项目,选中MFC AppWinzid (exe),并填写好项目名称,存储路径,点击OK.进入下一步,在出现的页面中选择当文档模式(Single document),单击完成(Finish),即可。
步骤二:编译工程
单击Build菜单下的Execute test.exe(或单击工具栏中的 ! )编译一下刚才建立的项目。即可看到一个如下图1.3的windows 风格窗口。
图1.3
2、添加CDIB类
步骤一:将dib.cpp和dib.h文件(已发给大家)拷贝到工程目录下。
步骤二:打开工程空间(双击刚才建立的目录下的test.dsw) 。单击在编译窗口中的Project(Add To Project(Files,在弹出的对话框中选择dib.cpp和dib.h。单击确定。
步骤三:在类视图中查看是否有CDIB类(如下图1.4),如果没有请重复步骤一。
图1.4
3、建立菜单项
步骤一、点击ResouceView。双击资源中的MEUM-IDC_MAINFRAME。在编辑框中将看到主框架的菜单资源(如图.5).
如图1.5
步骤二、在菜单资源中,添加菜单栏和菜单项。双击其中的一个空白菜单栏,即进入其熟悉框,可添加或修改其名称,这里将其命名为(图像操作),如图1.6.
图1.6
步骤三、在“图像操作栏”中添加菜单项――“打开图像”。具体步骤见图1.7。
步骤四、编译(单击!),将出现如图1.8的界面,如果没有出现菜单栏和菜单项,请重复到步骤一。
图1.8
4、添加CTestView的公共成员函数m_dib
按照如图1.9中的提示操作,添加CTestView的公共成员函数m_dib.
图1.9
5、添加响应函数
步骤一、右击编辑框中的任意位置,在弹出的提示菜单中,选择ClassWizard,在弹出的类向导对话框中,按照如图1.10的提示进行选择和操作。
图1.10
步骤二、查看类视图中的CTestView类中是否有OnOpenImage函数,正确的如图1.11,单击该函数即进入该函数体。
图1.11
6、实现响应函数的功能
在ClassView中CTestView类中的OnOpenImage函数,进入其函数体。添加如下红色字体代码:
void CTestView::OnOpenIamge()
{
// TODO: Add your command handler code here
static char szFilter[]=BMP文件(*.bmp)|*.bmp||; //定义过滤文件的类型
CFileDialog dlg(TRUE,bmp,NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);//定义文件对话框对象
CString filename;
int ret=dlg.DoModal(); //运行打开文件对方框
if(ret==IDOK)
{
filename=dlg.GetFileName(); //获取所选择图像的路径
m_dib.LoadFromFile(filename); //加载图像
if(!m_dib.m_bLoaded) //判断是否加载图像成功
{
AfxMessageBox(图像打不开);
return;
}
}
Invalidate(1); //刷新屏幕
}
7、添加显示代码
在ClassView中CTestView类中的OnDraw函数,进入其函数体。添加如下红色字体代码:
void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if(m_dib.m_bLoaded==true) //判断是否加载图像
{
//获取图像宽和高
int nw=m_dib.GetDIBWidth();
int
文档评论(0)