editbox中自带垂直滚动条实现实时拖动显示
来源:互联网 发布:axure7.0 mac 中文版 编辑:程序博客网 时间:2024/06/11 23:49
花了不少时间去搞清楚窗口滚动条和滚动条控件的区别,对于后者的消息处理我是清楚的,就是给程序加上控件然后再加上对应的控件消息的处理函数。对于前者的处理我还先前真的不清楚。在做一个关于socket网络编程的例子时,我遇到了一个难题。我给一个对话框添加了一个editbox,用来动态显示从目标ip地址发送来的文字(此显示过程位于我创建的一个时钟函数void CWangluoliaotianDlg::OnTimer(UINT nIDEvent)内)。我比较偷懒啦,没有给此edit控件添加垂直滚动条控件,而是使用了editbox控件自带的垂直滚动条(具体做法是在资源视图中对应的edit控件的vertical scroll、auto vscroll属性上选择ture,本人用的是vs2010)。在未作处理时当edit控件中文字超过了edit显示框的范围,如果拉动垂直滚动条到最下方以期望看到edit控件下方的内容,我发现对话框只是短暂的显示了最下方的内容然后又恢复到对话框的最上方了。原因分析:所有对edit内容的动态显示操作是在onTimer中进行的,随着时钟的周期运行,edit控件的操作是一直在更新的,我并没有将垂直滚动条拖动到的位置传送给系统进行实时处理。百度了一下,结果找了很久才找到一片很有用的文章,连接如下:http://blog.csdn.net/chenmeng2192089/article/details/6741891,我在ontimer()函数中加入了如下一段代码,运行后,实现了edit控件实时拖动显示效果,具体如下图。
void CWangluoliaotianDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CWnd *edit1,*edit2;
static int po=0;
edit1=GetDlgItem(IDC_EDIT1);
//edit1->SetWindowText(m_edit1);//UpdateData(false);
edit2=GetDlgItem(IDC_EDIT2);
edit2->UpdateData(true);
/////////////////设置滚动条自动往下滚
CEdit* p1=(CEdit*)GetDlgItem(IDC_EDIT1);
ASSERT(p1&&p1->GetSafeHwnd());
po=p1->GetScrollPos(SB_VERT);//获取滚动条当前位置
edit1->SetWindowText(m_edit1);//刷新edit1内的数据
p1->LineScroll(po);//将显示位置定在滚动条所在的位置
//////
CDialog::OnTimer(nIDEvent);
}
- editbox中自带垂直滚动条实现实时拖动显示
- 垂直拖动条的实现
- div 显示垂直滚动条
- VC++的MFC中EditBox控件滚动条保持在底部的实现。
- Siverlight DataGrid自带滚动条不显示的问题
- SWT带垂直滚动条的Text自动滚动到底部(比如显示聊天信息)
- MFC EditBox控件滚动条保持在底部的实现
- 【MFC】关于EditBox中滚动条定位问题
- UGUI 带垂直滚动条的文本框
- 视频处理——实现滚动条实时显示
- 去掉窗体滚动条,并在自定义DIV中显示垂直滚动条
- ListCtrl中垂直滚动条自动滚动
- ListCtrl中垂直滚动条自动滚动 .
- ListCtrl中垂直滚动条自动滚动
- VerticalSeekBar 垂直拖动条的实现
- jqgrid保持显示垂直滚动条
- IE6,7默认显示垂直滚动条
- wpf DataGrid 不显示垂直滚动条
- 林仕鼎谈架构设计与架构师
- mac下配置ADB
- 使用 xampp 来部署 php,mysql,apache 开发环境
- 常见的纸张及相片尺寸
- 将图像翻转九十度
- editbox中自带垂直滚动条实现实时拖动显示
- 死锁及死锁处理
- java创建applet
- Android面试题总结(六)
- 程序-内存分配
- 为JBoss7配置MSSQL的DataSource
- 【笔试or面试】操作系统的多道编程
- I2C原理总结
- 读书:《Android系统源代码情景分析》- 简述Zygote进程和System进程的启动