『原创』用C++开发WM应用系列(6)——深化ListBox控件

用C++开发WM应用系列文章索引

引言:

在上一篇博文中,我们简单的学习了ListBox控件的项添加、项的全部清除。接上一篇的尾巴,我们将在这篇博文中,介绍一些ListBox的小技巧吧,比如,获取选中项、删除选中项。

正文

首先,我们打开VS2008,选择新建一个C++项目,项目名称用MFC_Listbox吧,当然是基于MFC的智能设备应用程序项目啦。来到向导窗口,选择WM5平台的SDK足矣,然后设置项目基于对话框,其他保持默认,一路Next即可。我们先打开资源视图,看到我们需要把用户界面设计成如下效果:

『原创』用C++开发WM应用系列(6)——深化ListBox控件

一个Button控件,Caption设置为Show,一个CEdit控件,为其添加一个变量:txtEdit。一个ListBox控件,为其添加一个变量:lbox。大致的界面就是如此,当然,你感兴趣的话,可以研究一下ListBox的属性,很有意思。在此就暂不作深入了。

Ok,界面画好了之后,我来介绍一下程序的逻辑吧,通过编程在程序初始化时,往ListBox中插入三个Item(使用AddString函数),当用户选中一项之后,点击按钮Show,那么被选中的Item的内容就会显示在Edit控件中。简单吧~:>

好了,我们下面针对两个主要过程来写代码:

1、程序初始化:

首先,我们要在程序开始时,就填充这个ListBox,自然而然的,我们会找到MFC_ListBoxDlg.cpp : 实现文件中,那个由系统自动生成的函数:

BOOL CMFC_ListBoxDlg::OnInitDialog(),显而易见的,函数内部已经告知我们可以添加自己定义的初始化代码,正合我意嘛,不客气了,直接往此函数中,添加我们的代码如下:

『原创』用C++开发WM应用系列(6)——深化ListBox控件『原创』用C++开发WM应用系列(6)——深化ListBox控件OnInitDialog代码

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按钮后,选择“添加事件处理程序”即可

『原创』用C++开发WM应用系列(6)——深化ListBox控件

后面按照向导,默认即可。之后,来到了源代码编辑页面,我们往这个函数中添加如下代码:

『原创』用C++开发WM应用系列(6)——深化ListBox控件『原创』用C++开发WM应用系列(6)——深化ListBox控件Show按钮代码

void CMFC_ListBoxDlg::OnBnClickedButton1(){    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按钮的代码如下,即可完成选中项的删除:

『原创』用C++开发WM应用系列(6)——深化ListBox控件『原创』用C++开发WM应用系列(6)——深化ListBox控件Show按钮代码2

void CMFC_ListBoxDlg::OnBnClickedButton1(){    CString strSelect ;//设置一个字符串变量,用于准备获取ListBox中的选中项    INT nIndex = 0 ;//用于指定被选中项索引号的INT变量    nIndex=lbox.GetCurSel();//获取ListBox中选中项的索引号    lbox.DeleteString(nIndex);//删除选中项}

Ok,我们就先写到这里吧,今天看了一下工具箱中的其他控件,我会抽时间,再近期写一些其它控件的使用的文章。感谢大家的关注~有不足之处,请尽情发表~嘿!

结尾:

在这一次的学习中,我们深入了解了ListBox的选中项操作,比如GetCurSel函数,用于获取当前选中项的索引;GetText(int index)函数,用于获取指定索引项的内容;DeleteString(int index)函数,用于删除指定索引项。当然了,还有很多很多方法,就有待大家挖掘了~~~~
原文链接: https://www.cnblogs.com/longqi293/archive/2010/03/04/1678566.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/8523

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月6日 下午7:36
下一篇 2023年2月6日 下午7:38

相关推荐