QQ登录

只需一步,快速开始

71上位机VC MFC组合框多行多列 查询 复选框效果

[ 复制链接 ]

71上位机VC MFC组合框多行多列 查询 复选框效果

71上位机VC MFC组合框多行多列 查询 复选框效果

71上位机VC MFC组合框多行多列 查询 复选框效果


功能展示

VC提供的组合框功能单一,有时我们想实现组合框的查询功能,想让组合框显示多行多列,或是显示勾选效果,那就必须得自己使用代码逐一完成。我们当前例程就深度封装了这些功能,效果如图
要点提示
当前例程主要讲解一经过深度封装的组合的使用,在使用时,有几个注意的知识点;因为我们当前例程是通过自绘方法,在DrawItem()函数内部实现组合框多行多列和打勾效果的,所以组合框得带有自绘属性,也就是在组合框控件上右键属性-类型-OWNER-DRAW选择fixed和has string;  另外 类型请选择 drop list,才能够显示多列,不然组合框里仅能显示一列
实现功能
1.新建基于对话框的应用程序
2.将当前例程中CFunComboBox类的两个文件FUNCOMBOBX.CPP,FUNCOMBOBX.H,复制到自己的工程根目录下,且添加到工程当中。

3.在主对话框中实现查询功能:添加一编辑框,关联内容改变触发函数,添加一组合框关联我们自定义的组合框变量m_SearchCombo,并给它初始化些文本内容,相关函数如下
  1. void CGkbc8Dlg::OnChangeEdit1()
  2. {CString rString;
  3.         CWnd::GetDlgItem(IDC_EDIT1)->GetWindowText( rString );
  4.         m_SearchCombo.SelectString(rString);
  5.         UpdateData(FALSE);
  6. }
复制代码
  1. void CGkbc8Dlg::OnInitSearchComboBox()
  2. {m_SearchCombo.FormatList(4,DT_LEFT,FALSE,EDGE,0); //初始化四列
  3.                 CString str;
  4.                 for (int row=0;row<10;row++)// 添加五行,直充组合框
  5.                 {
  6.                         for (int col=0;col<4;col++)
  7.                         {
  8.                                 str.Format("第%d列-%d行",col,row);
  9.                                 if (col==3)        
  10.                                 switch(row)
  11.                                 {case 0:str = "g"; break; case 1:str = "k"; break; case 2:
  12.                                 str = "b"; case 3:str = "c"; break;
  13.                                 case 4:str = "8"; break;
  14.                                 case 5:str = "工"; break; case 6:str = "控";
  15.                                 break; case 7:str = "编"; break;
  16.                                 case 8:str = "程"; break;
  17.                                 case 9:str = "吧"; break;
  18.                                 } m_SearchCombo.AddItem(str,col,row);
  19.                         }
  20.                 }
  21.                 m_SearchCombo.SetCurSel(0);//should be called first
  22. }
  23. <div style="text-align: center;"><span style="font-size: large; line-height: 1.5;">4.实现组合框多列隐藏功能,添加一组合框关联变量 CFunComboBox        m_HideComboColumn;,再初始化添加些文本</span></div>void CGkbc8Dlg::OnInitHideColumn()
  24. {m_HideComboColumn.ResetContent(1,DT_LEFT,FALSE,NORMAL,1);
  25.         CString str;
  26.                 for (int row=0;row<250;row++)
  27.                 {
  28.                         for (int col=0;col<4;col++)
  29.                         {                                                                                                        
  30.                                 str.Format("Column:%d ,row:%d",col,row);
  31.                                 m_HideComboColumn.AddItem(str,col,row);
  32.                         }

  33.                 }
  34. m_HideComboColumn.SetCurSel(0);
  35. }
复制代码
7.最重要一点是将以上全部组合框的属性设置成drop-list; owner-draw:fixed 且 has string;


我们来演示下整个功能实现过程

请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:71.上位机VC MFC组合框多行多列 查询 复选框效果.rar 
文件大小:148.15 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!


回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索