最近在利用MFC作端口掃描器實驗,其中涉及CString、char、int等之間的轉換、文本框的多行顯示問題、老是顯示底層最新結果等問題,下面寫一些我總結的相關方法。編碼
1、CString 轉 char *spa
void CS_to_ch(char mess[], CString str) { //CString to char char *pbuff = (char *)str.GetBuffer(str.GetLength()); char one = pbuff[0]; char two = pbuff[1]; int i = 0; for (; i < str.GetLength(); i++) { mess[i] = pbuff[i * 2]; } mess[i] = '\0'; }
這樣就可將cstring轉爲char*code
char* 轉cstring 更爲簡單orm
char s[]="hello"; CString str = s;
int 轉 cstringblog
int i = 12; CString str; str.Format(_("%d"), i);
2、文本框的多行顯示unicode
文本框輸出的方法有不少,這裏介紹其中一種方法。string
首先爲咱們的edit control關聯變量,類型選擇value,名稱自取,假設爲Cedit,首先接受一行輸出:it
Cedit =_T("hello"); UpdateData(FALSE);
_T()表明用unicode字符集編碼,具體不作闡述。class
若是多行輸出,首先須要設置edit control的屬性:變量
Multiline 設爲 True;
Horizontal Scroll 和Vertical Scroll及Want return 均設爲true;
而後,
Cedit ="hello"; Cedit =Cedit + "\r\n" +"world"; UpdateData(FALSE);
便可多行輸出。
實現底部更新只需一行代碼:(首先爲edit control設置關聯變量,類型爲控件,名字自取,假設爲m_edit)
UpdateData(FALSE);
m_edit.LineScroll(m_edit.GetLineCount() - 1, 0);