1. 程式人生 > >MFC 多行文字顯示心得

MFC 多行文字顯示心得

最近在利用MFC做埠掃描器實驗,其中涉及CString、char、int等之間的轉換、文字框的多行顯示問題、總是顯示底層最新結果等問題,下面寫一些我總結的相關方法。

一、CString 轉  char *

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*

      char* 轉cstring  更為簡單

char s[]="hello";
CString str = s;

二、文字框的多行顯示

       文字框輸出的方法有很多,這裡介紹其中一種方法。

       首先為我們的edit control關聯變數,型別選擇value,名稱自取,假設為Cedit,首先接受一行輸出:

Cedit =_T("hello");
UpdateData(FALSE);

       _T()代表用unicode字符集編碼,具體不做闡述。

       如果多行輸出,首先需要設定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);