天天看点

【数字图像处理】 二.MFC单文档分割窗口显示图片

本文是讲述《数字图像处理》系列文章,继上篇讲述bmp格式图片和显示后,该篇讲述如何对单文档进行分割.主要是采用csplitterwnd静态分割窗口显示图片等相关知识.本文主要结合自己的课程及常用图片软件讲解.

create:创建一个动态的分隔器窗口并将它与一个csplitterwnd对象连接.参数:

pparentwnd表示切分窗口的父框架窗口;

nmaxrows,nmaxcols是创建切分窗口的最大列数和行数(动态创建的分割窗口的窗格数目不能超过2x2);

sizemin指出显示一个窗格所需的最小尺寸;

pcontext指向一个ccreatecontext结构的指针(多数情况这个值可以是传递给父框架窗口的pcontext);

dwstyle指定窗口的风格;

nid此窗口的子窗口id(如果分隔器窗口不是嵌套另一分隔器窗口中,则id可以是afx_idw_pane_first).

createstatic:创建一个静态的分隔器窗口并将它与一个csplitterwnd对象连接.参数:

nrows行数.该值不能超过16;

ncols列数.这个值必须不超过16;

【数字图像处理】 二.MFC单文档分割窗口显示图片

添加代码如下,同时向cmainframe.cpp中添加#include "mfcpicview.h",向mfcpicview.h中添加#include "mfcpicdoc.h",否则会出现"xxxdoc missing ';' before '*'"错误提示:

(4).可以设置runtime_class为自定义的类.如可以实现左边是带有按钮的窗口,右边是操作后显示的图片."项目"->"新建类"为工程添加一个新类,在class type中选择mfc class,在对话框name中输入"crightview",并在base class(基类)下拉列表中自定义设置为ceditview,同时修改第二个窗格的代码修改如下:

m_wndsplitter.createview(0,1,runtime_class(crightview),csize(250,250),pcontext))

【数字图像处理】 二.MFC单文档分割窗口显示图片

补充两篇文章供大家及自己学习和作为在线笔记:

ps:由于在完成该程序时vs2012在编译时总是提示错误:"error msb6006:'cl.exe' exited with code 2",code 1是汉字问题,但code 2可能是路径环境被破坏.查找到相应位置microsoft.cppcommon.targets的代码是"<cl condition="'%(clcompile.precompiledheader)'..."同时还提示"error

link1158:无法运行 'rc.exe'|'link.exe'|'ml.exe'".在网上查找baidu.google.msdn等都没有很好的解决方案,而且运行"vs2012\vc\bin"下的cl.exe会提示缺少dll,下载也没有用;重新修复或安装vs2012都不能修复该错误,真心无语.但是c#工程可以运行,就是mfc不能运行.

它耗费了我大量时间,最后我决定放弃,准备装vc 6.0来完成mfc项目,但在安装它时又由于兼容问题,程序总是未响应,也不能安装.但是再次运行vs2012时上面的error msb6006等问题被解决了,vs2012的mfc又能运行了.我怀疑可能由于在安装vc 6.0时修复了其中文件环境路径问题,百思不得其解???

 希望该文章能够对大家有所帮助,同时如果文章中有错误或不足之处,还请大家海涵.后面讲述的"左边显示树状图片路径,右边显示图片"和"显示图片路径中的文件"可能对大家帮助更大,此篇仅是开篇.

继续阅读