工控编程吧
标题:
71上位机VC MFC组合框多行多列 查询 复选框效果
[打印本页]
作者:
qq263946146
时间:
2015-12-9 21:37
标题:
71上位机VC MFC组合框多行多列 查询 复选框效果
(, 下载次数: 4)
上传
点击文件名下载附件
71上位机VC MFC组合框多行多列 查询 复选框效果
功能展示
VC提供的组合框功能单一,有时我们想实现组合框的查询功能,想让组合框显示多行多列,或是显示勾选效果,那就必须得自己使用代码逐一完成。我们当前例程就深度封装了这些功能,效果如图
要点提示
当前例程主要讲解一经过深度封装的组合的使用,在使用时,有几个注意的知识点;因为我们当前例程是通过自绘方法,在DrawItem()函数内部实现组合框多行多列和打勾效果的,所以组合框得带有自绘属性,也就是在组合框控件上右键属性-类型-OWNER-DRAW选择fixed和has string; 另外 类型请选择 drop list,才能够显示多列,不然组合框里仅能显示一列
实现功能
1.新建基于对话框的应用程序
2.将当前例程中CFunComboBox类的两个文件FUNCOMBOBX.CPP,FUNCOMBOBX.H,复制到自己的工程根目录下,且添加到工程当中。
3.在主对话框中实现查询功能:添加一编辑框,关联内容改变触发函数,添加一组合框关联我们自定义的组合框变量m_SearchCombo,并给它初始化些文本内容,相关函数如下
void CGkbc8Dlg::OnChangeEdit1()
{CString rString;
CWnd::GetDlgItem(IDC_EDIT1)->GetWindowText( rString );
m_SearchCombo.SelectString(rString);
UpdateData(FALSE);
}
复制代码
void CGkbc8Dlg::OnInitSearchComboBox()
{m_SearchCombo.FormatList(4,DT_LEFT,FALSE,EDGE,0); //初始化四列
CString str;
for (int row=0;row<10;row++)// 添加五行,直充组合框
{
for (int col=0;col<4;col++)
{
str.Format("第%d列-%d行",col,row);
if (col==3)
switch(row)
{case 0:str = "g"; break; case 1:str = "k"; break; case 2:
str = "b"; case 3:str = "c"; break;
case 4:str = "8"; break;
case 5:str = "工"; break; case 6:str = "控";
break; case 7:str = "编"; break;
case 8:str = "程"; break;
case 9:str = "吧"; break;
} m_SearchCombo.AddItem(str,col,row);
}
}
m_SearchCombo.SetCurSel(0);//should be called first
}
<div style="text-align: center;"><span style="font-size: large; line-height: 1.5;">4.实现组合框多列隐藏功能,添加一组合框关联变量 CFunComboBox m_HideComboColumn;,再初始化添加些文本</span></div>void CGkbc8Dlg::OnInitHideColumn()
{m_HideComboColumn.ResetContent(1,DT_LEFT,FALSE,NORMAL,1);
CString str;
for (int row=0;row<250;row++)
{
for (int col=0;col<4;col++)
{
str.Format("Column:%d ,row:%d",col,row);
m_HideComboColumn.AddItem(str,col,row);
}
}
m_HideComboColumn.SetCurSel(0);
}
复制代码
7.最重要一点是将以上全部组合框的属性设置成drop-list; owner-draw:fixed 且 has string;
我们来演示下整个功能实现过程
[iqiyi]http://player.video.qiyi.com/80a8680edbaa7cb5442b1eb0428dbe17/0/1282/w_19rt6vhghx.swf-albumId=5003293609-tvId=5003293609-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4