最近做了一個基於UDP的局域網內聊天工具的課程設計,其中要用到編輯框,如果只改變它固有的屬性是實現不了垂直滾動條自動下移到底端這個功能的。以下是我的實現方法:
我用的是VC6.0中文版,跟VS2008有點不一樣(括號內為vs2008):
1.新建一個編輯框控件(Edit Control),將其多行(Multiline)前面打勾(屬性設置為True),Auto HScroll前面的勾去掉(屬性設置False),這樣就可以實現每一行填滿后自動換行了。
2.再將垂直滾動條(Vetrical Scroll)前面打勾(屬性設置為True),當輸入或顯示超過編輯框的大小后就會出現垂直滾動條。
3.如果是輸入,滾動條會自動移動跟隨到當前輸入行,但是如果是設置將很多內容一次性讓編輯框顯示,滾動條就會一直處於最上方,需要手動拉到最下面才能看見最后一行的內容,在很多時候這是我們不需要的,而是想要滾動條處於最下方,如下的代碼將實現這一功能:
this->SetDlgItemText(IDC_EDIT_RECV,str);//將字符串str中內容顯示到ID為IDC_EDIT_RECV的編輯框
m_recvshw.LineScroll(m_recvshw.GetLineCount());//m_recvshw為該編輯框的成員變量(也就是control類型的變量)
//使用控件變量的一些成員函數設置滾動條的位置