VC中Combo Box控件使用大全

一、如何添加/删除Combo Box内容
1,在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。换行用ctrl+回车。
2,在程序初始化时动态添加
如: //控件内容初始化
 CString strTemp;
 ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent();//消除现有所有内容
 for(int i=1;i<=100;i++)
 {
  strTemp.Format("%d",i);
  ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->AddString(strTemp);
 }
3,下拉的时候添加
如: CString strTemp;
 int iCount=((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetCount();//取得目前已经有的行数
 if(iCount<1)//防止重复多次添加
 {
  ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent();
  for(int i=1;i<=100;i++)
  {
   strTemp.Format("%d",i);
   ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->AddString(strTemp);
  }
 }
4,删除
DeleteString( UINT nIndex )//删除指定行,
5,插入
InsertString( int nIndex, LPCTSTR lpszItem )//将行插入到指定位置
6,查找
FindString( int nStartAfter, LPCTSTR lpszItem )//可以在当前所有行中查找指定的字符传的位置,nStartAfter指明从那一行开始进行查找。
int SelectString( int nStartAfter, LPCTSTR lpszItem )//可以选中包含指定字符串的行
二、如何控制Combo Box的下拉长度

1,首先要知道两点:一、那就是在设计界面里,点击一下Combo Box的下拉箭头,此时出现的调整框就是Combo Box的下拉调整框。
2,二、属性里有个 No integral height 钩选项,表示最大长度为设计长度,如果实际内容比设计长度多,就出现滚动条,少就以实际长度显示。

三、选择其中的某行
1,选中:
int iPos=((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetCurSel();//当前选中的行。
2,设置
((CComboBox*)GetDlgItem(IDC_COMBO_CF))->SetCurSel(n)//设置第n行内容为显示的内容。

四、取得Combo Box框内容
1取当前内容
((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetWindowText(strTemp);

2取其他行内容
((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetLBText(n,strTemp);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在VC ListControl控件添加check box,你可以使用自定义绘制来实现。下面是一个简单的示例代码: 1. 首先,在资源编辑器创建一个List Control控件。 2. 在对话框类的头文件添加以下成员变量和消息映射: ```cpp // 头文件 class CMyDialog : public CDialogEx { // ... CListCtrl m_list; CImageList m_imageList; // ... afx_msg void OnLvnItemchangedList(NMHDR* pNMHDR, LRESULT* pResult); DECLARE_MESSAGE_MAP() }; ``` 3. 在OnInitDialog()函数添加以下代码: ```cpp // 初始化 List Control m_list.SubclassDlgItem(IDC_LIST, this); m_list.SetExtendedStyle(LVS_EX_CHECKBOXES); // 创建图像列表以容纳 checkbox 图标 m_imageList.Create(16, 16, ILC_MASK | ILC_COLOR, 1, 1); HICON hIcon = (HICON)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_CHECKBOX), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); m_imageList.Add(hIcon); m_list.SetImageList(&m_imageList, LVSIL_SMALL); ``` 4. 在消息映射添加以下代码: ```cpp // 消息映射 BEGIN_MESSAGE_MAP(CMyDialog, CDialogEx) // ... ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST, &CMyDialog::OnLvnItemchangedList) END_MESSAGE_MAP() ``` 5. 实现OnLvnItemchangedList()函数: ```cpp void CMyDialog::OnLvnItemchangedList(NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView = reinterpret_cast<NM_LISTVIEW*>(pNMHDR); // 确定是否选了某个项目 if ((pNMListView->uChanged & LVIF_STATE) && (pNMListView->uNewState & LVIS_STATEIMAGEMASK)) { // 获取选项目的索引 int nIndex = pNMListView->iItem; // 获取当前 checkbox 的状态 BOOL bChecked = m_list.GetCheck(nIndex); // 根据需要处理 checkbox 状态 if (bChecked) { // 处理选状态 } else { // 处理未选状态 } } *pResult = 0; } ``` 这样,你就可以在VC ListControl控件添加check box,并通过OnLvnItemchangedList()函数处理选状态的变化。记得将IDC_LIST替换为你实际使用的List Control控件的ID。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值