最近在利用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);
原文地址:https://www.cnblogs.com/Ido-911/p/9921852.html
时间: 2024-10-12 11:51:57