工控编程吧
标题:
64上位机VC MFC列表控件自动添加与调节水平滚动条
[打印本页]
作者:
qq263946146
时间:
2015-12-7 21:48
标题:
64上位机VC MFC列表控件自动添加与调节水平滚动条
(, 下载次数: 0)
上传
点击文件名下载附件
64上位机VC MFC列表控件自动添加与调节水平滚动条
功能展示
我们开发上位机应用到列表控件时,会发现它有自带水平垂直滚动条,垂直滚动条可自行调节大小,水平却无法实现自动添加与调节,我们当前例程就来简单快速实现列表控件自动添加与调节水平滚动条功能,效果如图
要点提示
想要让列表控件有自动添加与调节水平滚动条功能,除了设置它的水平条属性外,还得向它发送LB_SETHORIZONTALEXTENT消息,设置它的水平滚动条长度;我们可以通过SendDlgItemMessage()这个函数实现。这个函数主要实现向对话筐控件发送消息LRESULT SendDlgItemMessage( int nID, UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
nID 为控件ID, message为要发送的消息;wParam, lParam 为消息的附带信息;
我们当前例程通过SendDlgItemMessage(IDC_LIST1,LB_SETHORIZONTALEXTENT, sz.cx, 0);形式实现;sz.cx为文本的总长度
实现功能
1.新建基于对话框的应用程序
2.拖拽一个列表框控件,设置水平垂直滚动条属性,并关联一变量CListBox m_List;
3.拖拽一编辑框控件,用于向列表控件添加文本,并关联一变量CEdit m_Edit;
4.拖拽一按钮控件,实现消息响应
void CGkbc8Dlg::OnAdd()
{
//获取文本
CString str;
m_Edit.GetWindowText(str);
m_Edit.SetWindowText("");
m_List.AddString(str);
CRect rc;
CSize sz;
m_List.GetWindowRect(rc);
CDC *pDC =m_List.GetDC();
sz = pDC->GetTextExtent(str);
if(sz.cx>=rc.Width())//如果文本的总长度超出列表框的长度时
SendDlgItemMessage(IDC_LIST1, LB_SETHORIZONTALEXTENT, sz.cx, 0);
}
复制代码
我们来演示一下功能实现过程
[iqiyi]http://player.video.qiyi.com/dbc5a214f53a56678129db6c60d618b7/0/0/w_19rt66vecp.swf-albumId=4993576709-tvId=4993576709-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4