MFC EDIT控件自动显示垂直滚动条
2015-12-24 12:39
253 查看
首先设置EDIT控件的属性,如下:
注意:Horizontal scroll 和 Auto HScroll 不要选择。
在OnInitDialog()函数中处理:
// 获取EDIT可以显示的行数
TEXTMETRIC tm;
CRect rect;
GetDlgItem(IDC_EDIT_INFO)->GetClientRect(&rect);
CDC* pdc = GetDlgItem(IDC_EDIT_INFO)->GetDC();
::GetTextMetrics(pdc->m_hDC,&tm);
GetDlgItem(IDC_EDIT_INFO)->ReleaseDC(pdc);
m_nLineCount = rect.bottom/(tm.tmHeight-1.5);
在需要显示时:
SetDlgItemText(IDC_EDIT_INFO,strStatus);
int nLine = ((CEdit*)GetDlgItem(IDC_EDIT_INFO))->GetLineCount();
if( nLine > m_nLineCount)
{
GetDlgItem(IDC_EDIT_INFO)->ShowScrollBar(SB_VERT, TRUE);
}
else
{
GetDlgItem(IDC_EDIT_INFO)->ShowScrollBar(SB_VERT, FALSE);
}
注意:Horizontal scroll 和 Auto HScroll 不要选择。
在OnInitDialog()函数中处理:
// 获取EDIT可以显示的行数
TEXTMETRIC tm;
CRect rect;
GetDlgItem(IDC_EDIT_INFO)->GetClientRect(&rect);
CDC* pdc = GetDlgItem(IDC_EDIT_INFO)->GetDC();
::GetTextMetrics(pdc->m_hDC,&tm);
GetDlgItem(IDC_EDIT_INFO)->ReleaseDC(pdc);
m_nLineCount = rect.bottom/(tm.tmHeight-1.5);
在需要显示时:
SetDlgItemText(IDC_EDIT_INFO,strStatus);
int nLine = ((CEdit*)GetDlgItem(IDC_EDIT_INFO))->GetLineCount();
if( nLine > m_nLineCount)
{
GetDlgItem(IDC_EDIT_INFO)->ShowScrollBar(SB_VERT, TRUE);
}
else
{
GetDlgItem(IDC_EDIT_INFO)->ShowScrollBar(SB_VERT, FALSE);
}
</pre><pre name="code" class="cpp">
相关文章推荐
- JavaWeb学习总结(一)——JavaWeb开发入门
- 服务
- ImportError: No module named MySQLdb 解决方案
- CSS选择器
- 学生成绩管理-C语言版之排序(各种排序)
- yum搭建lnmp环境(CentOS6.5)
- 递归应用----指向整型数据的指针变量对输入的3个整数按从小到大排序
- 数据结构C语言版之查找(折半选择快速等)
- linux 消息队列查看和删除
- 给马小怂写的教程-----微信如何添加表情包
- C语言---基础
- 基于VMware的虚拟Linux集群搭建-lvs+keepalived
- Java 8 的 JVM 有多快?Fork-Join 性能基准测试
- 通用轮播(包括响应式~)
- 数据结构课程设计源代码
- Linux 下编译 redis 报错解决办法
- Activity之间传递Bitmap
- 数据结构C语言版之邻接矩阵(遍历)
- Java 8 的 JVM 有多快?Fork-Join 性能基准测试
- QFileDialog、QColorDialog中英文提示信息翻译方法