• 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] = '';
    }

          这样就可将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 + "
    " +"world";
    UpdateData(FALSE);

            即可多行输出。

            实现底部更新只需一行代码:(首先为edit control设置关联变量,类型为控件,名字自取,假设为m_edit)

            

    UpdateData(FALSE);
    m_edit.LineScroll(m_edit.GetLineCount() - 1, 0);

           

  • 相关阅读:
    由少林寺比武想到软件行业分工
    微软SQL 报表服务的研究
    图形化窗体表单设计器
    多层数据源处理复杂数据结构
    Universal menu command handle pattern
    使用foreach来读取记录
    C#计算20902个汉字的拼音首字母
    软件的价值
    虚控件在GUI编程中的应用
    深刻的检讨书
  • 原文地址:https://www.cnblogs.com/Ido-911/p/9921852.html
Copyright © 2020-2023  润新知