关于CComboBox的使用,编辑项的文字

摘要:
1intnum=m_cbTable.GetCount();23FBusRouteTimeTable*pTable=(FBusRouteTimeTable*)itr->GetName().c_str());=“”&m_curTableIndex;3435}3637}383940inlinebolSetComboBoxItem(CComboBox&intindex;

Drop List 模式 没啥说的。

 1 int num = m_cbTable.GetCount();
2
3 FBusRouteTimeTable* pTable = (FBusRouteTimeTable*)itr->CurrentItem();
4
5 m_cbTable.InsertString(num, pTable->GetName().c_str());
6
7 m_cbTable.SetItemDataPtr(num, pTable);
8
9
10
11 m_cbTable.SetCurSel(0);
12
13

主要说说Dropdown模式。因为是可编辑的,我想实现一个即时编辑保存的功能。

Dropdown模式下的SetCurSel()得到的永远是-1,因为它没有选中任何item,只是用一个CEdit来显示了当前的item的字符,所以要改变item的内容就要自己设置一个变量来记录“当前选中的item”。

需要响应一个CBN_KILLFOCUS消息,然后删掉选中item,再在同一位使用新的字符串置插入一个新的item。

 1 void FTabDialogBusLineTime::OnCbnKillfocusComboBuslineTime()
2
3 {
4
5 // TODO: 在此添加控件通知处理程序代码
6
7 if (m_curTableIndex == -1)
8
9 {
10
11 return;
12
13 }
14
15 CString cstr;
16
17 m_cbTable.GetWindowText(cstr);
18
19 CString cstrOld;
20
21 m_cbTable.GetLBText(m_curTableIndex, cstrOld);
22
23 if (cstr!="" && cstr!=cstrOld)
24
25 {
26
27 FBusRouteTimeTable* pTemp = (FBusRouteTimeTable*)m_cbTable.GetItemDataPtr(m_curTableIndex);
28
29 pTemp->SetName(cstr.AllocSysString());
30
31 SetComboBoxItem(m_cbTable, m_curTableIndex, cstr);
32
33 m_cbTable.SetCurSel(m_curTableIndex);
34
35 }
36
37 }
38
39
40 inline bool SetComboBoxItem( CComboBox& cbCtrl, int index, LPCTSTR newText, void* newDataPtr = NULL)
41
42 {
43
44 void* pTemp = newDataPtr;
45
46 if (newDataPtr == NULL)
47
48 {
49
50 pTemp = cbCtrl.GetItemDataPtr(index);
51
52 }
53
54 if (cbCtrl.DeleteString(index) == CB_ERR )
55
56 {
57
58 return false;
59
60 }
61
62 cbCtrl.InsertString(index, newText);
63
64 cbCtrl.SetItemDataPtr(index, pTemp);
65
66 return true;
67
68 };

免责声明:文章转载自《关于CComboBox的使用,编辑项的文字》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[git] fatal: This operation must be run in a work tree欢快的使用谷歌搜索下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vuejs导航条动态切换active状态

用一个数组存导航条,用v-for循环它,这样可以减少代码,二可以使用它的下标来判断高亮,三还可以获取后端的导航信息来遍历 重点是在:routerLink(index, path)函数,传入当前点击的下标,自定义一个下标,判断是否相等就用三元符号判断多给一个高亮样式 如何解决刷新就不高亮或第一个高亮了,很简单,监听一下当前路由在判断就好了 具体代码都在下...

Mybatis操作Mysql批量更新的一个坑-&allowMultiQueries=true允许批量更新

前言           利用Mybatis批量更新或者批量插入,实际上即使Mybatis完美支持你的sql,你也得看看你操作的数据库是否完全支持,而同事,最近就遇到这样的一个坑! 问题         先带大家来看一段sql的配置:      1 <update id="updateAllAvailable"> 2 <foreach...

net Core做一个webApi的简单实例

用NetCore 和Dapper 和mySql做一个简单的实例, 一准备工作 1:VS2017+windos系统,也可以用其他的操作系统和工具 2:一台Cenetos的虚拟机或者虚拟机 二:开始 1:用微软官方的netCore的ToDo项目改造,项目的主体结构如下图,源连接 https://docs.microsoft.com/zh-cn/aspnet/c...

MyBatis的几种批量操作

MyBatis中批量插入   方法一: <insert id="insertbatch" parameterType="java.util.List"> <selectKey keyProperty="fetchTime" order="BEFORE" resultType="java.lang.String">...

微信小程序实现给循环列表点击添加类(单项和多项)

在微信小程序里面没有DOM对象, 不能操作DOM. 所有的操作通过数据来实现,下面主要实现了给循环列表点击添加类的操作 一、单项 目标需求:实现下图,给点击的view增加类,每次只能选择一个。 主要思路:给点击的view增加类,依靠点击的index对state进行赋值。如果相同时,给该view增加类。 实现代码: .wxml文件 <view>...

爬虫实战(三) 用Python爬取拉勾网

目录 0、前言 1、初始化 (1)准备全局变量 (2)启动浏览器 (3)打开起始 URL (4)设置 cookie (5)初始化部分完整代码 2、爬取数据 (1)爬取网页数据 (2)进行翻页操作 (3)爬取数据部分完整代码 3、保存数据 4、数据可视化 5、大功告成 (1)完整代码 (2)运行过程 (3)运行结果 0、前言 最...