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;

      int 轉 cstring

int i = 12;
CString str;
str.Format(_("%d"), i);

 

二、文本框的多行顯示

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

       首先為我們的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);

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM