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);

       

转载于:https://www.cnblogs.com/Ido-911/p/9921852.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值