本文是講述《數字圖像處理》系列文章,繼上篇講述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;
添加代碼如下,同時向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))
補充兩篇文章供大家及自己學習和作為線上筆記:
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時修複了其中檔案環境路徑問題,百思不得其解???
希望該文章能夠對大家有所幫助,同時如果文章中有錯誤或不足之處,還請大家海涵.後面講述的"左邊顯示樹狀圖檔路徑,右邊顯示圖檔"和"顯示圖檔路徑中的檔案"可能對大家幫助更大,此篇僅是開篇.