由於早期的影象處理程式基於vc6.0,mfc也是採用vc6.0開發的。在實際處理中,我不僅需要介面的顯示,有很多時候,我需要演算法處理的過程中的資訊,比如每個階段的耗時,處理的影象大小,以及如果需要迭代,當前的迭代次數。
當然,有很多方法可以解決上述需求,譬如可以通過file建立乙個檔案,然後把相關資訊寫入。
但,那都不夠直觀
我希望的是,它能夠像vc或vs在編譯的時候,在下方有個「debug window」,將執行過程中的資訊實時顯示。
第一步 建立乙個single document view
just勾乙個選項即可,
第二步 在resource欄進行設定
注意,這裡的dialog應該選擇formview
並且布局設定如下,上面的edit控制項為edit box
第三步 修改mainfrm類
在標頭檔案mainfrm.h中,增加乙個dialogbar成員變數
cstatusbar m_wndstatusbar;
c******* m_wnd*******;
… cdialogbar m_wnddlgbar; // 控制下方的dialog控制項
對onpaint函式進行重寫(這裡應該是乙個虛函式)
afx_msg int oncreate(lpcreatestruct lpcreatestruct);
… afx_msg void onpaint(); // 重寫onpaint()函式,用以控制控制項的顯示
在mainfrm.cpp檔案中
1) 在此處增加on_wm_paint()
begin_message_map(cmainframe, cframewnd)
//}afx_msg_map
end_message_map()
2)在oncreate中新增dialogbar的建立函式
// 設定dialogbar的建立
if (!m_wnddlgbar.create(this, idd_dlglog,
ws_child | cbrs_bottom | cbrs_tooltips | cbrs_flyby | cbrs_gripper, idd_dlglog))
m_wnddlgbar.enabledocking(cbrs_align_any);
3)通過onpaint函式控制大小
// 控制dialogbar 與 editlog 的大小
void cmainframe::onpaint()
在此有個小插曲,如果想讓mfc左上角的無標題等標題狀態替換成自己想要的,則,在oncreate函式中新增
setwindowtext( 「demo」); // 設定標題為demo
並在bool cmainframe::precreatewindow(createstruct& cs)函式中新增這麼一行:
cs.style &= ~fws_addtotitle; // 讓以上設定的標題得以顯示
第四步 其它檔案可以通過logwindow輸出資訊
首先在該檔案中增加乙個外部變數,譬如我們要在logwnddoc.cpp上要使用,則在檔案前面加入:
cstring soutput="hello, my log window !!!\r\n";
plogwnd->replacesel((lpctstr)soutput, true);
}
最終效果如下:
為MFC介面新增乙個Log Window
由於早期的影象處理程式基於vc6.0,mfc也是採用vc6.0開發的。在實際處理中,我不僅需要介面的顯示,有很多時候,我需要演算法處理的過程中的資訊,比如每個階段的耗時,處理的影象大小,以及如果需要迭代,當前的迭代次數。當然,有很多方法可以解決上述需求,譬如可以通過file建立乙個檔案,然後把相關資...
為MFC工程新增乙個控制台
在mfc工程裡有時想要輸出一些資料,可以用trace之類的,也可以寫日誌,還可以為工程新增乙個控制台直接輸出到控制台裡,這樣可以很方便的查閱輸出的資訊。效果就是這樣的,在程式生成時建立乙個控制台,在程式關閉時會隨之銷毀,發布程式時只要把對應的 注釋掉就好了。具體的操作是在你想要建立控制台的類的建立方...
ios 為程式新增乙個懸浮框
一 uiwindow的簡介 2.ios程式啟動完畢後,建立的第乙個檢視控制項就是uiwindow,接著建立控制器的view,最後將控制器的view新增到uiwindow上,於是控制器的view就顯示在螢幕上了 3.乙個ios程式之所以能顯示到螢幕上,完全是因為它有uiwindow。也就說,沒有uiw...