VC实现随内容改变高度的Edit Control
2015-02-06 15:09
288 查看
目的:EditControl宽度不变,高度随内容的改变,可大可小。
一 新建一个对话框项目,对话框ID为IDD_EDITTEST_DIALOG,向Dialog中添加一个EditControl。设置Edit Control的ID为IDC_EDIT_TEST。为Edit Control添加变量,变量类型为CEdit,变量名为m_Edit_ctlTest 变量类别为control,控件类型为EDIT.
Edit Control 属性设置
1 Want Retun为True
2 Multiline为 True
3 Auto Hscroll为False
4 Auto Vscroll为True
5 Vertical Scroll为True
二 为Edit Control添加 控件事件EN_CHANGE 该事件表示指示文本更改以后显示已更新
IDE会自动增加代码
1 EditTestDlg.h 头文件中增加
public:
afx_msg void OnEnChangeEditTest();
2 EditTestDlg.cpp 实现文件中增加
1)消息映射
ON_EN_CHANGE(IDC_EDIT_TEST, &CEditTestDlg::OnEnChangeEditTest)
2)成员函数
void CEditTestDlg::OnEnChangeEditTest()
{
}
三 在OnEnChangeEditTest函数中 添加代码
CEdit* edit = (CEdit*)GetDlgItem(IDC_EDIT_TEST);
CString text;
edit->GetWindowText(text);
//获取Edit Control中的内容
CDC* dc = edit->GetDC();
//获取设备指针
CFont* font = edit->GetFont();
//获取当前字体
CFont* oldFont = dc->SelectObject(font);
//设置当前设备
CSize size = dc->GetTextExtent(text);
//以CSize的形式返回字符串的高度和宽度
dc->SelectObject(oldFont);
edit->ReleaseDC(dc);
//释放设备
int i=m_Edit_ctlTest.GetLineCount();
//获取Edit Control中内容的行数
RECT rect;
m_Edit_ctlTest.GetWindowRect(&rect);
ScreenToClient(&rect);
//屏幕坐标转换为客户区的坐标也就是Edit Control相对于Dialog的坐标
rect.bottom=rect.top+(i+1)*size.cy;
//加是为了Control底部留下一段距离
m_Edit_ctlTest.MoveWindow(&rect);
//改变Edit Control的大小
完成
一 新建一个对话框项目,对话框ID为IDD_EDITTEST_DIALOG,向Dialog中添加一个EditControl。设置Edit Control的ID为IDC_EDIT_TEST。为Edit Control添加变量,变量类型为CEdit,变量名为m_Edit_ctlTest 变量类别为control,控件类型为EDIT.
Edit Control 属性设置
1 Want Retun为True
2 Multiline为 True
3 Auto Hscroll为False
4 Auto Vscroll为True
5 Vertical Scroll为True
二 为Edit Control添加 控件事件EN_CHANGE 该事件表示指示文本更改以后显示已更新
IDE会自动增加代码
1 EditTestDlg.h 头文件中增加
public:
afx_msg void OnEnChangeEditTest();
2 EditTestDlg.cpp 实现文件中增加
1)消息映射
ON_EN_CHANGE(IDC_EDIT_TEST, &CEditTestDlg::OnEnChangeEditTest)
2)成员函数
void CEditTestDlg::OnEnChangeEditTest()
{
}
三 在OnEnChangeEditTest函数中 添加代码
CEdit* edit = (CEdit*)GetDlgItem(IDC_EDIT_TEST);
CString text;
edit->GetWindowText(text);
//获取Edit Control中的内容
CDC* dc = edit->GetDC();
//获取设备指针
CFont* font = edit->GetFont();
//获取当前字体
CFont* oldFont = dc->SelectObject(font);
//设置当前设备
CSize size = dc->GetTextExtent(text);
//以CSize的形式返回字符串的高度和宽度
dc->SelectObject(oldFont);
edit->ReleaseDC(dc);
//释放设备
int i=m_Edit_ctlTest.GetLineCount();
//获取Edit Control中内容的行数
RECT rect;
m_Edit_ctlTest.GetWindowRect(&rect);
ScreenToClient(&rect);
//屏幕坐标转换为客户区的坐标也就是Edit Control相对于Dialog的坐标
rect.bottom=rect.top+(i+1)*size.cy;
//加是为了Control底部留下一段距离
m_Edit_ctlTest.MoveWindow(&rect);
//改变Edit Control的大小
完成
相关文章推荐
- VC实现随内容改变高度的Edit Control
- javascript实现框架高度随内容改变的方法
- javascript实现框架高度随内容改变的方法
- CSS 实现未知内容高度的垂直水平居中(改良版)
- iframe随内容改变高度
- 实现Web页面内容动态改变的dhtml操作http://www.knowsky.com/4074.html
- 动态改变DataWindow控件窗口中内容的几种实现方法
- CBIR 基于内容的图像检索系统 纹理,形状,颜色和空间特征综合检索 VC++实现
- 给INI文件内容XOR加密 VC实现
- CSS实现未知内容高度的垂直水平居中(改良版)
- 用SDK对话框实现改变背景颜色和显示剪贴板中的文本文件内容
- 【记录】用Javascript实现文本框textarea高度随内容自动适应增长收缩
- 实现Web页面内容动态改变的dhtml操作
- javascript 实现 检查form内容是否发生改变 (非常强大)
- vc 中改变ListCtrl每一行(每一个Item)的高度
- 利用WM_CTLCOLOR消息实现编辑控制(Edit Control)的文本与背景色的改变
- 动态的改变IFrame的高度,使其没有滚动条,实现IFrame自动伸展
- 利用WM_CTLCOLOR消息实现编辑控制(Edit Control)的文本与背景色的改变
- 用VC实现动态改变Windows的显示特性
- 框架的高度随框架里面的内容的多少而改变