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

原文地址:https://www.cnblogs.com/Ido-911/p/9921852.html

时间: 2024-10-12 11:51:57

MFC 多行文本显示心得的相关文章

多行文本显示网页正常显示

/// <summary> /// 多行文本显示到LABEL时使用 /// </summary> /// <param name="value"></param> /// <returns></returns> public static string huanhang(string value) { return value.Replace("\r\n", "<br/>&

css3 设置多行文本显示省略号

display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 .-webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 .text-overflow: ellipsis;,可以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本 .overflow : hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-

MFC 工具栏隐藏与显示

最近在学MFC,看的是孙鑫的VC++视频,感觉还不错.在看到第九节课的时候,讲到工具栏的时候,做了个小功能:工具栏的隐藏和显示,但是有个bug就是一个悬浮的工具栏隐藏后再显示,就会变成停靠状态.这里我又把工具栏的隐藏与显示又实现了一遍,去掉了这个bug,做到跟MFC中自带的菜单栏中视图->工具栏菜单项一样的功能. 其实,关于工具栏的隐藏与显示问题,只需要考虑三种状态:(1)在停靠状态下工具栏的显示与隐藏:(2)在悬浮状态下工具栏的显示与隐藏:(3)在悬浮状态下,通过点击关闭按钮去关闭工具栏,然后

HTML5[6]:多行文本显示省略号

CSS3新增text-overflow: ellipse; 只支持单行文本 如果是多行文本, 在无法完全显示的情况下,可以按下面这样写: overflow:hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;

MFC下最大化时显示PC的任务栏

需求:最大化,有时候会不想将PC桌面下面的任务栏隐藏,而是显示出来,方便客户或自己操作.那么就需要再初始化的时候和切换大小的时候均进行处理. 思想:要不隐藏任务栏,就需要在最大化的时候先获取到工作区大小,然后将界面MoveWindow()成该工作区大小,或者是获取任务栏的大小,显示的时候再修改工作区的bottom左边位置为任务栏的top. 处理:下面是具体的代码,已实现并验证过. 在OnInitDialog中添加以下这段代码可以: 1 int cx = GetSystemMetrics(SM_C

单行文本、多行文本显示省略号...

一.单行文本 .box { width: 200px;   overflow: hidden;   text-overflow:ellipsis;   white-space: nowrap;   } 二.多行文本 1. csss实现,适用于webkit内核浏览器.移动端.微信可以,火狐不可以 .box {  width: 200px;  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; over

【MFC相关】图片显示

CPaintDC dc(this); if (!m_hBitmap) return; image.Attach(m_hBitmap); CRect rect; GetClientRect(&rect);//获得控件所在的矩形区域 int width = rect.Width(); int height = rect.Height(); //...... CDC mDC; mDC.CreateCompatibleDC(&dc); CBitmap b; b.CreateCompatibleBi

多行文本显示省略号

overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;

MFC将应用程序显示在最前端

::SetWindowPos(AfxGetMainWnd()->m_hWnd,HWND_TOPMOST,-1,-1,-1,-1,SWP_NOMOVE|SWP_NOSIZE);