数字图像处理visual studio C++技术实现(杨淑莹,张桦,陈胜勇)——第一部分MFC基础

学习计算机图形学的最好办法就是通过自己时间,将相关的算法敲出来。这里我选择了数字图像处理visual studio C++技术实现作为参考,来实现计算机图形学里面的一些基本的算法。在这本书里面需要运用MFC建立一个简单的对话框程序,然后自己建立一个CDib类库来对位图文件进行处理。对于像我这样没有接触过MFC的人来说,书上的例子的实现还是经历了许多困难。这里我打算通过这个博客来记录自己学习数字图像处理算法的过程,也同时为没有基础的同学提供最简单易懂的帮助。接下来,我们便尝试建立一个书上要求的MFC对话框,并添加上菜单栏的控件,为后面的学习做好准备工作。注意的是我这里使用的是visual studio 2015,其它版本应该也相差不大。

第一步:建立MFC工程

点击文件->新建->项目->MFC->MFC应用程序建立一个MFC工程,这里的工程名是MFCImgProc,意思是mfc图像处理,你需要自己命名一个项目名,最后点击完成,MFC项目就创建完毕了。

接下来选择基于对话框,后面的直接下一步选择默认项,最后一步选择CMFCImgProcDlg,即基于对话框的项目。这一项很重要,在后面创建菜单栏控件的时候需要添加回调函数的时候会用到。

 

 

 

 

第二步:创建菜单栏

MFC工具箱中默认没有提供菜单栏的控件,想达到书上的效果必须自己进行添加,并且自己设置回调函数。首先,在资源视图中点击鼠标右键,然后选择添加资源。

然后,选择Menu->新建。

然后,在右侧资源视图里面就可以看见Menu这个资源,点击之后就可以对菜单栏进行设置。这里简单地添加了三个选项,分别是文件,打开,关闭。

第三步:为菜单栏设置回调函数

因为MFC中默认是没有菜单栏控件的,因此也不会有默认的回调函数和相关的默认定义,这里都需要自己进行添加。

1.添加菜单栏控件的声明,只有添加的声明MFC才知道有这样一个控件已经被添加了。

把CMenu m_Menu;

添加到xxxDlg.h的头文件中,这里的xxx是你自己设置的工程名。

2.在xxxDlg.cpp中的BOOL CMfcimgprocDlg::OnInitDialog()函数体中,添加

m_Menu.LoadMenu(IDR_MENU1);  //  IDR_MENU1
           SetMenu(&m_Menu);

这时点击一下运行就可以看到有菜单栏的对话框了,但是菜单栏中的按键还未实现任何功能,需要进一步添加消息响应函数才行。

 

 

 

第三步:添加消息响应函数

1.点击IDR_MENU1->项目->添加现有项

 

2.选择对话框的源文件,点击确定。

3.在菜单栏设置的界面,点击你需要添加功能的按钮的右键,选择添加事件处理程序。

4.选择下图红色标识部分

5.最后你就可以在事件处理函数里面添加相关的事件处理程序了,MFC的菜单栏创建的基础就完成了。为了测试你所建立的对话框是否成功,可以添加如下代码并点击运行,运行之后就会出现下图的效果。

结语

后面会陆续更新这本书中的所有章节,书中的很多代码都是无法直接在电脑上运行的,但是思路一般是对的,这里后续将陆续提供可以运行的代码,作为参考,算法的具体实现或许与书上有所不同,但是基本形式和思想是完全一致的,可供参考。

猜你喜欢

转载自blog.csdn.net/qq_23557345/article/details/81870194