『原创』用C++开发WM应用系列(6)——深化ListBox控件
用C++开发WM应用系列文章索引
引言:
在上一篇博文中,我们简单的学习了ListBox控件的项添加、项的全部清除。接上一篇的尾巴,我们将在这篇博文中,介绍一些ListBox的小技巧吧,比如,获取选中项、删除选中项。
正文:
首先,我们打开VS2008,选择新建一个C++项目,项目名称用MFC_Listbox吧,当然是基于MFC的智能设备应用程序项目啦。来到向导窗口,选择WM5平台的SDK足矣,然后设置项目基于对话框,其他保持默认,一路Next即可。我们先打开资源视图,看到我们需要把用户界面设计成如下效果:
一个Button控件,Caption设置为Show,一个CEdit控件,为其添加一个变量:txtEdit。一个ListBox控件,为其添加一个变量:lbox。大致的界面就是如此,当然,你感兴趣的话,可以研究一下ListBox的属性,很有意思。在此就暂不作深入了。
Ok,界面画好了之后,我来介绍一下程序的逻辑吧,通过编程在程序初始化时,往ListBox中插入三个Item(使用AddString函数),当用户选中一项之后,点击按钮Show,那么被选中的Item的内容就会显示在Edit控件中。简单吧~:>
好了,我们下面针对两个主要过程来写代码:
1、程序初始化:
首先,我们要在程序开始时,就填充这个ListBox,自然而然的,我们会找到MFC_ListBoxDlg.cpp : 实现文件中,那个由系统自动生成的函数:
BOOL CMFC_ListBoxDlg::OnInitDialog(),显而易见的,函数内部已经告知我们可以添加自己定义的初始化代码,正合我意嘛,不客气了,直接往此函数中,添加我们的代码如下:
{
CDialog::OnInitDialog();
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
lbox.AddString(L"Test1");
lbox.AddString(L"Test2");
lbox.AddString(L"Test3");
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
看到了吧,那三行lbox.AddString("xxx")就是我们的初始化代码。这样,在程序运行之后,ListBox中就被填充了这样三个项。
2、Show按钮点击处理程序:
这里,我们需要为Show按钮添加事件处理程序,添加方法如下图:右键单击Show按钮后,选择“添加事件处理程序”即可
后面按照向导,默认即可。之后,来到了源代码编辑页面,我们往这个函数中添加如下代码:
{
CString strSelect ;//设置一个字符串变量,用于准备获取ListBox中的选中项
INT nIndex = 0 ;//用于指定被选中项索引号的INT变量
nIndex=lbox.GetCurSel();//获取ListBox中选中项的索引号
lbox.GetText(nIndex,strSelect);//将选中项索引号传入GetText函数中,把选中项内容赋给strSelect变量
txtEdit.SetWindowText(strSelect);//显示选中项的内容
}
大家可以看到,通过ListBox的GetCurSel()方法,获取当前选中的项的索引,返回值为INT,然后,用GetText()函数,获取特定索引的内容。
最终,把选中项内容赋值给Edit控件,通过SetWindowText()方法。
至此,我们就完成了获取选中项的操作。当然,之前不是说了么,如何删除选中项呢?很简单,注意到,ListBox中有一个DeleteString()函数,而传入的参数恰好是项的索引值,这不就是那个nIndex吗?简单了。
我们修改Show按钮的代码如下,即可完成选中项的删除:
{
CString strSelect ;//设置一个字符串变量,用于准备获取ListBox中的选中项
INT nIndex = 0 ;//用于指定被选中项索引号的INT变量
nIndex=lbox.GetCurSel();//获取ListBox中选中项的索引号
lbox.DeleteString(nIndex);//删除选中项
}
Ok,我们就先写到这里吧,今天看了一下工具箱中的其他控件,我会抽时间,再近期写一些其它控件的使用的文章。感谢大家的关注~有不足之处,请尽情发表~嘿!
结尾:
在这一次的学习中,我们深入了解了ListBox的选中项操作,比如GetCurSel函数,用于获取当前选中项的索引;GetText(int index)函数,用于获取指定索引项的内容;DeleteString(int index)函数,用于删除指定索引项。当然了,还有很多很多方法,就有待大家挖掘了~~~~
『原创』用C++开发WM应用系列(6)——深化ListBox控件相关推荐
- 『原创』用C++开发WM应用系列(2)——拨打电话
用C++开发WM应用系列文章索引 引言: 在上一节中,我们通过了一个MFC智能设备程序项目,带大家一起走进了Native c++开发WM的大门,我们了解了如何为程序添加控件.事件,以及自定义自己的类. ...
- 微软云盘配合服务器,『原创』开源5T微软云盘搭建教程onedrive index
前言 为什么搭建一个微软共享云盘?百度云.蓝奏云不好吗?百度云有会员限制功能,各种限制更是不少,蓝奏云速度超快,但是貌似不支持大文件.微软毕竟是大厂,可用的5T教育邮箱现在也很好搞到,之所以采用是因为 ...
- COM组件开发实践(八)---多线程ActiveX控件和自动调整ActiveX控件大小(下)
源代码下载:MyActiveX20081229.rar 声明:本文代码基于CodeProject的文章<A Complete ActiveX Web Control Tutorial>修改 ...
- firefox扩展开发(二):用XUL创建窗口控件
firefox扩展开发(二):用XUL创建窗口控件 2008-06-11 16:57 1.创建一个简单的窗口 <?xml version="1.0"?> <?xm ...
- SAP UI5 应用开发教程之六十 - SAP UI5 地图控件的一些高级用法试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- android禁止下拉刷新,Android开发之无痕过渡下拉刷新控件的实现思路详解
相信大家已经对下拉刷新熟悉得不能再熟悉了,市面上的下拉刷新琳琅满目,然而有很多在我看来略有缺陷,接下来我将说明一下存在的缺陷问题,然后提供一种思路来解决这一缺陷,废话不多说!往下看嘞! 1.市面一些下 ...
- 全能开发工具 ComponentOne(3)——常用控件下篇
在全能开发工具 ComponentOne -- 常用控件上篇中,小编向大家分别介绍了: 1.高性能表格控件 -- ComponentOne FlexGrid 2.包含80多种2D和3D类型的图表控件 ...
- 『原创』WM利用Google Weather API获取天气预报
最近,项目忙得很,公司里杂事很多都跑到我这里,搞得我也不能专心的做项目,索性,今天抽空,玩了一玩谷歌的天气预报服务.相信通过这篇文章,能让大家了解在.net CF下如何发起一个http访问请求(Web ...
- 『原创』让.Net CF实现智能提示(AutoComplete)功能
前言 最近,一直在做Winform方面的开发,有一个公交信息查询的场景,用户在起始站输入框输入部分站点名称,系统能够自动给他建议和提示,类似Google中的自动补全.智能提示之类的功能,在Winfor ...
最新文章
- [luogu5004]专心OI - 跳房子【矩阵加速+动态规划】
- 2月1日学习内容整理:算法
- 服务器温控系统,服务器温度监控
- .NET 2.0 中使用Active Directory 应用程序模式 (ADAM)
- html dom 高级,DOM 高级工程师不完全指南
- 嫌微软要价“太狠” 东莞网吧巨头拒绝付费
- 龙芯下中标系统C语言查找设备号_龙芯:主控进驻国产激光打印机并适配麒麟OS...
- sass使用相关报错
- debugger怎么用_谷歌开发者工具,这些技巧你用过么?
- 计算机保研和考研复试相同吗,保研与考研有什么区别?
- java imap收邮件_android pop3与imap方式接收邮件(javamail)
- 「1s」即可!用 VS Code 一键玩转 GitHub 代码!
- EMNLP'21 | Dialogue System 对话系统
- 从优秀到卓越 pdf_演讲口才培训:演讲能力是卓越领导者需要具备的能力
- idea 因破解而无法打开的问题
- MySQL面试题常见知识点总结
- Android集成LAME库,实现pcm转mp3
- 蒙特卡洛树搜索 Monte Carlo Tree Search
- 微信公众号开发之网页授权获取用户基本信息
- ios手机号和邮箱(支付宝账号)脱敏