,"/r/n"才是換行. EDIT也要設定成MULTILINE的.Auto HScroll改為false,want return設為true.
/r是軟斷行符號,就是當字元到達一定數滿行時不用斷行符號就自動換行
/n是硬斷行符號,就是只有你輸入斷行符號鍵時才換行
在程式中使用斷行符號時缺一不可
/*
在C++檔案中 /n就能實現換行,vc的edit和這點不同
*/
/*
VC-曠野 (289956293) 16:00:36
這麼問吧. 為什麼當輸入焦點在EDit裡面時,我按enter鍵,就會關閉程式 ?
VC-曠野 (289956293) 16:00:51
難道這是EDIT對enter的預設處理方式 ?
VC-半糖(65066313) 16:00:55
發送了idok
VC-半糖(65066313) 16:01:09
屏蔽掉
VC-半糖(65066313) 16:01:19
或者進行其他處理
/**
注:OnOK是dlg的一個虛函數,確實只要重載它就能解決這個問題了。
輸入焦點在EDit裡面時,enter鍵,系統的處理方式就是調用dlg::OnOK.
*/
VC-CCl(414927703) 16:02:17
EDIT屬性中有一個是否接收斷行符號鍵
VC-曠野 (289956293) 16:03:23
want return
VC-CCl(414927703) 16:03:23
叫"Want Return"如果選中,則edit可以換行,這時按斷行符號就不會關閉對話方塊,
如果不選中,則不能換行,既然不能換行,你卻按了enter鍵,當然就關閉了
*/
經過多次測試,總結出VC編輯框(EDIT)的自動換行與自動滾屏的方法。
方法一:(當EDIT映射到一CString時)
m_String = m_String + sNewString + "/r/n" //自動換行
UpdateData(false);
此法只能做到自動換行,不會自動滾屏到最後一行。
方法二:(當EDIT映射到一EDIT時)
m_Edit.SetSel(-1, -1); //自動滾屏
m_Edit.ReplaceSel(sNewString+"/r/n"); //自動換行
UpdateData(true);
此法可以做到自動換行,並自動滾屏到最後一行。
以上,m_String、m_Edit.分別為給編輯框添加的成員變數;sNewString 為要顯示的字串
注意二法中UpdataData參數的區別。
我發現修改編輯框的屬性:Auto_HScroll等用處不大。