VC MFC列表框(CListBox)控件

合集下载

VCMFC中的CComboBox控件使用详解

VCMFC中的CComboBox控件使用详解

VCMFC中的CComboBox控件使用详解VC/MFC中的CComboBox控件使用详解CComboBox控件详解CComboBox控件又称作组合框控件,其有三种形态可供选择,1.简单组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down list).CComboBox控件的常用设置属性说明:type属性:里面一共有三个选项.就是其三种形式, 我们常用的是后两种形态,其区别就是Dropdown的编辑区为可编辑控件,而droplist 为静态控件.Data属性:当程序初始化的时候,下拉列表将显示其属性里面的内容,内容用分号分隔.其属性只支持后2中形式,Sort 属性:对添加到下拉列表框中的数据自动进行排序,如果你不想他改变你的显示序列,把他设置成False.控件是一个窗口.其基类是为CWnd.所以CComboBox也可以使用CWnd的一些函数,它自己的函数有30几种.我写了一个示范程序,演示了一些常用的函数,你可以参考其代码看到其功能.注:m_cbox 为CComboBox控件的关联变量,m_end为EDIT控件的关联变量1.GetCount() 函数:用以获得列表框中的选项数目. int GetCount() const;(此乃函数原型,我会列在每条的后面) 下面的例子是程序中各个按钮里面的代码int i;CString str;i=m_cbox.GetCount();str.Format ("%d",i);m_end="一共有"+str+"个数据";UpdateData(FALSE);2.GetCurSel() 函数:用以得到用户选中下拉列表框中数据的索引值.返回的值是重0开始的,如果没有选择任何选项将会返回-1 Int GetCurSel() constint i;CString str;i=m_cbox.GetCurSel ();str.Format ("%d",i+1);if (i==-1) m_end="你什么都没有选";else m_end="你选的是第"+str+"项";UpdateData(FALSE);3.SetCurSel函数:选取列表框中的一个选项,索引从0开始,-1为什么都不选.当你需要把列表框中已经选取的内容清空时就可以使用这个函数;if(m_i<3) m_cbox.SetCurSel (m_i++);//m_i为int型变量用以计数else {m_cbox.SetCurSel (-1);m_i=0;}4.SetEditSel函数:设置编辑区中蓝色选中字段的长度, BOOL SetEditSel( intnStartChar,int nEndChar ); nStartChar是起始的位置,当设置为-1时为不选择任何字段,nEndChar是结束位置.还有一个对应的函数GetEditSel是取得其位置,在此不详解.m_cbox.SetEditSel (3,5);//在编辑框中打入一串数字在按此按钮就能看到效果//其作用就是选中第3到第5个字符作为热点5.Clear() Cut() Paste() Copy() 这四个函数我放在一起说,因为他们都是针对编辑框中选定的文字进行编辑的函数,很多初学者很不明白这4个函数,使用这些函数没有作用,其实不然,这些函数对于在编辑框中的内容不进行处理,他真正处理的是你用鼠标选中的内容,对于Clear()函数很多书中解释都是有误的,很多书中对他的解释是清除当前选中的文本,我认为这样的解释是有歧异的,真正的解释是把你刚选中的文本释放掉,也就是不选,而不是把选中的删除,真正的删除选中的文本的函数是Cut(),Copy()是复制选中的文本,Paste()是粘贴到光标处.其演示就不写在程序中,有兴趣的朋友可以自己试试.6.LimitText()函数.其作用是限制在编辑框中键入的文本长度,BOOL LimitText(int nMaxChars); 当nMaxChars为0时,不是不能输入,而是长度最大化为65535字节7.GetLBText()函数.其原型为void GetLBText( int nIndex, CString&rString ).nIndex为列表框中数据的索引值,rString 为字符串,其作用就是把索引号为nIndex的数据放到rString变量中.与其对应的GetLBTextLen(intnIndex)函数就是得到索引号为nIndex中数据的长度m_cbox.GetLBT ext (2,m_end); // GetLBText按钮UpdateData(0);CString str; //GetLBTextLen按钮int i=m_cbox.GetLBTextLen (2);str.Format ("%d",i);m_end=str;UpdateData(FALSE);8.AddString() DeleteString() InsertString() ResetContent() 四个函数放在一起,他们都是针对下拉列表框的处理函数, AddString(LPCTSTR lpszString) 是在列表框的尾巴添加一条数据,参数为字符串. DeleteString(UINT nIndex)为删除指定索引为nIndex的数据. InsertString(int nIndex, LPCTSTR lpszString)在索引nIndex处插入IpszString的内容. ResetContent()是清除列表框中所有的内容.9.SetDroppedWidth(UINT nWidth) 函数.用于设定下拉列表框的最小宽度,当下拉列表框中的数据很长不能完全显示时,我们可以使用这个函数把列表框的宽度设置的大些.同样GetDroppedWidth()是返回列表框的宽度.以下为总结了各大论坛中对CCombBox控件使用的问题.并给出了正解.1.关于CComboBox在对话框中没有下拉项目的问题答: 资源编辑器中对话框中CComboBox组件的垂直范围拉大了下,就看见字体了,看到那个向下的黑箭头了吗,点他下拉,嘿嘿就这么简单.2.请问怎样能让CCombobox记住用户的输入.下次使用时还有答: 要记住用户的输入必须用到文件读写,或者把内容添加到注册表中,我会在以后给出解决办法.3. CCOMBOBOX如何使它只读,不能编辑答: 看了本文的介绍也许你现在知道了, CCOMBOBOX有三种类型的,选择你需要的吧!4. 我要让界面一显示,就能在Combo框中显示默认的数据答: 你要在OnInitDialog里面加上我上面所提到的SetCurSel()函数就行了.5. 如何把选好的内容赋给变量答: 先给CCOMBOBOX设置一个CString关联变量,再添加事件处理函数CBN_ Selchange.使用UpdateData(FALSE)就行了.6. 在CComboBox组合框中,条目的对齐方式是左对齐,能设置为对中或者右对齐吗?答: 没有直接的方法,你必须自己对齐, 比如最大长度是10int i;String.Format("%10d", i);CComboBox->AddStringVC combobox 使用大全 ---------------------------------------------------一、如何添加/删除Combo Box内容1. 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。

MFC_基本控件使用

MFC_基本控件使用

MFC_基本控件使用MFC(Microsoft Foundation Class)是一种用于开发Windows应用程序的编程框架,它提供了一系列的类和函数,方便开发者快速地创建Windows界面和处理事件。

在MFC中,基本控件是开发应用程序的重要组成部分,它们用于显示和交互用户界面。

本文将介绍MFC中几种常用的基本控件以及它们的使用方法。

1. 按钮控件(CButton):按钮控件用于接收用户的点击操作,通常用于触发相应的事件处理函数。

创建按钮控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“按钮”并将其拖动到对话框上;3)设置按钮的属性,如ID、文本、尺寸等。

1)在资源视图中右击对应的对话框,选择“添加控件”;组合框控件允许用户从预定义的选项中进行选择,类似于下拉列表。

创建组合框控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“组合框”并将其拖动到对话框上;3)设置组合框的属性,如ID、选项列表、尺寸等。

4. 列表框控件(CListBox):列表框控件用于显示一个选项列表,并且可以支持多选。

创建列表框控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“列表框”并将其拖动到对话框上;3)设置列表框的属性,如ID、选项列表、尺寸等。

5. 树形视图控件(CTreeCtrl):树形视图控件用于显示一个层级结构的数据,类似于文件夹结构或者程序的菜单栏。

创建树形视图控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“树形视图”并将其拖动到对话框上;3)设置树形视图的属性,如ID、尺寸等;4)使用CTreeCtrl的成员函数添加、删除、修改树节点。

6. List控件(CListCtrl):1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“List控件”并将其拖动到对话框上;3)设置List控件的属性,如ID、列数、尺寸等;以上是几种常用的MFC基本控件的使用方法,通过使用这些控件,可以轻松地创建出一个功能完善、交互友好的Windows应用程序。

VC++ 列表控件(CLIST) 使用方法 (2)

VC++ 列表控件(CLIST) 使用方法 (2)
D );创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格:
LVS_ICON LVS_SMALLICON LVS_LIST LVS_REPORT 这四种风格决定控件的外观,同时只可以选择其中一种,分别对应:大图标显示,小图标显示,列表显示,详细报表显示
LVS_EDITLABELS 结点的显示字符可以被编辑,对于报表风格来讲可编辑的只为第一列。
m_list.SetItemText(0,2,&quot;Item 1_3&quot;);
m_list.SetImageList(&amp;m_listSmall,LVSIL_SMALL);//设置ImageList
m_list.InsertColumn(0,&quot;Col 1&quot;,LVCFMT_LEFT,300,0);//设置列
m_list.InsertColumn(1,&quot;Col 2&quot;,LVCFMT_LEFT,300,1);
VC++ 列表控件(CList) 使用方法 (2)
列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。 MFC中使用CListCtrl类来封装列表控件的各种操作。
通过调用BOOL Create( DWORD dwStyle, const RECT&amp;rect, CWnd* pParentWnd, UINT nI
如果使用其它三种风格显示而不想显示图标你可以不进行任何设置,否则需要以如下形式调用: CImageList* SetImageList( CImageList* pImageList, LVSIL_SMALL);

MFC列表控件

MFC列表控件

列表控件(CListCtrl)和列表框控件(CListBox)有一定的区别,大家不要混淆。

列表控件(List Control)用来成列地显示数据,其表项通常包括图标(Icon)和标签(Lable)两部分,它们分别提供了对数据的形象和抽象描述。

图像列表控件(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,(可以把这些图标看成是以数组方式存储的),图像列表通常由大图标或位图构成,其中包含透明位图模式(实际上,所有的再一个图像列表中的图标都被存储在一个屏幕设备的位图中)。

可以利用windows API来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像邓操作。

图像列表控件提供了控制图像列表额基本方法,这些方法在Windows 95及以后版本才能实现。

该控件是不可见的,通常与其他如CListBox、CComboBox、CComboBoxEx 以及CTabCtrl一起使用,为他们提供图标资源。

CImageList& ImageList建立图像控件对象结构,Create初始化图像列表并绑定对象,图像控件的建立方法如下BOOL Create(int cx,int cy,UINT nFlags,int nInitial,int nGrow);BOOL Create(UINT nBitmapID,int cx,int nGrow,COLORREF crMask);BOOL Create(LPCTSTR lpszBitmapID,int cx,int nGrow,COLORREF crMask);BOOL Create(CImageList& imageList1,int nImage1,CImageList& imagelist2,int nImage2,int dx,int dy);其中各项参数的含义为:cx定义图像的宽度,单位为像素;cy定义图像的高度,单位为像素;nFlags确定建立图像列表的类型,可以是以下值的组合:ILC_COLOR、ILC_COLOR4、ILC_COLOR8、ILC_COLOR16、ILC_COLOR24、ILC_COLOR32、ILC_COLORDDB和ILS_MASK;nInitial用来确定图像列表包含的图像;nGrow 用来确定图像列表可控制的图像数量。

mfcvslistboxcontrol控件用法 -回复

mfcvslistboxcontrol控件用法 -回复

mfcvslistboxcontrol控件用法-回复MFC (Microsoft Foundation Class)是微软的一套C++类库,用于开发Windows操作系统上的应用程序。

在MFC中,提供了一系列的控件供开发者使用,其中包括了List Box控件。

List Box控件是用于显示一组选项的窗口控件,用户可以从中选择一个或多个选项。

它常用于列表选择界面,例如选择用户的偏好设置、选择文件、选择项目等。

在本文中,我们将详细介绍MFC中的List Box控件的用法,以帮助开发者了解如何创建、添加选项、获取选择结果等。

第一步:创建List Box控件在MFC应用程序中,可以通过对话框设计器来创建List Box控件。

打开对话框设计器后,可以在工具箱中找到List Box控件,将其拖放到对话框上。

第二步:设置List Box属性选中List Box控件后,可以进行一些属性的设置,如修改控件名称,调整位置和大小等。

可以通过双击控件来打开属性窗口,设置更多属性。

第三步:添加选项在List Box控件上右键单击,选择Properties可以打开属性窗口。

在属性窗口中,可以输入选项的名称,然后点击“添加”按钮将选项添加到List Box中。

可以重复该步骤来添加多个选项。

第四步:获取选择结果当用户选择了一个或多个选项后,可以通过代码来获取选择的结果。

在MFC中,可以通过CListBox类来操作List Box控件。

可以在对话框所属的类中声明一个CListBox类型的变量,并在DoDataExchange函数中进行绑定。

接下来,可以通过CListBox的相关函数来获取选择的结果。

例如,可以使用GetCurSel函数来获取当前选中项的索引值,或使用GetText函数来获取选中项的文本内容。

第五步:处理选中项的操作在有些场景下,可能需要对选中的项进行一些操作,例如删除、移动等。

MFC提供了一系列的函数来方便对List Box控件中的选项进行操作。

MFC列表控件CListCtrl使用方法示范

MFC列表控件CListCtrl使用方法示范

MFC列表控件CListCtrl使⽤⽅法⽰范CListCtrl 获取选中的某⼀⾏POSITION ps = m_list.GetFirstSelectedItemPosition();int nSel = m_list.GetNextSelectedItem(ps);//选中的哪⾏的索引(based 0)// 或if(m_list.GetSelectedCount() <1)return;int nSel = m_list.GetSelectionMark();CListCtrl控件失去焦点时仍保持⾼亮1. 头⽂件中添加变量m_nSelItemint m_nSelItem;2. 为ListCtrl控件添加NM_KILLFOCUS(失去焦点)和NM_SETFOCUS(得到焦点)消息⼿动添加代码如下:头⽂件中添加声明afx_msg void OnNMKillfocusList(NMHDR *pNMHDR, LRESULT *pResult);afx_msg void OnNMSetfocusList(NMHDR *pNMHDR, LRESULT *pResult);源⽂件中添加映射ON_NOTIFY(NM_KILLFOCUS, IDC_LISTCTRL, OnNMKillfocusList)ON_NOTIFY(NM_SETFOCUS, IDC_LISTCTRL, OnNMSetfocusList)源⽂件中添加函数void CPageListView::OnNMKillfocusList(NMHDR *pNMHDR, LRESULT *pResult){// TODO: 在此添加控件通知处理程序代码m_nSelItem = m_ListCtrl.GetSelectionMark();m_ListCtrl.SetItemState(m_nSelItem, LVIS_DROPHILITED, LVIS_DROPHILITED);*pResult = 0;}void CPageListView::OnNMSetfocusList(NMHDR *pNMHDR, LRESULT *pResult){// TODO: 在此添加控件通知处理程序代码m_ListCtrl.SetItemState(m_nSelItem, FALSE, LVIF_STATE);*pResult = 0;}注意:Always Show Selection属性⼀定要设为FALSE以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

MFC各种控件属性介绍

MFC各种控件属性介绍

MFC各种控件属性介绍VC++6.0控件工具箱:2 图形控件(picture):常用于显示位图(Bitmap)和图标(Icon)3 静态文本(Static Text):用来在指定的位置显示特定的字符串,一般用来标识附近另一个控件的内容。

显示在静态文本控件中的字符串一般不再改变,但是在需要的时候,也可以通过调用相应的函数来进行设置。

MFC提供了CStatic类支持静态控件。

4 编辑框(Edit Box):用来接收用户输入的字符串。

通过选择编辑框的选项,编辑框可以接收字符串、数字、密码等;编辑框还可以设置成接收多行字符串的模式;可以自动进行大小写转换。

编辑框可能向其父窗口发送多种控件通知,如果用户需要,可以对这些控件通知进行处理。

MFC提供了CEdit类支持编辑框控件。

5 组成框(Group Box):用来包围具有逻辑关系的一组控件,在这些控件的周围加上边界和标题。

需注意的是,组成框仅仅是在视觉效果上对控件进行“成组”,真正的“成组”工作还需要另外一些工作。

6 按钮(Button):用来接收用户的命令,应用程序在接收到用户命令后,通常需要进行一些后台工作。

按钮可以响应单击或双击动作,在按钮接收到鼠标动作后,向其父窗口发送相应的控件通知,用户可以对这些控件通知进行消息映射,从而进行相应的处理。

在一个对话框中,可以定义一个默认按钮,这只要选中按钮属性中的“Default”选项。

如果在对话框活动的时候按下了Enter键,则等同于单击了默认按钮。

MFC提供了CButton类支持按钮控件。

7 复选框(Check Box):用来显示某种可能的选择,该项选择是独立的,用户可以选中或取消该选项。

在选项被选中的时候核选标记出现,选项被取消时核选标记消失。

MFC中由CButton类对核选框进行支持,用户可以通过SetCheck()函数和GetCheck()函数设置或获取核选框当前的状态。

8 单选按钮(Radio Button):用来选择某种可能的选择,与核选框不同,该选项不是独立的。

MFC各种控件属性介绍

MFC各种控件属性介绍

MFC各种控件属性介绍MFC(Microsoft Foundation Class)是Microsoft提供的一套C++类库,用于简化Windows应用程序的开发过程。

MFC中有许多控件可以用于构建用户界面,每个控件都有自己的属性。

接下来将介绍一些常用的MFC控件及其属性。

1. Button按钮控件:3. List Box列表框控件:List Box控件用于显示一列选项供用户选择。

常用属性包括:列表框内容(List Box Content)、选择模式(Selection Mode)、默认选择项(Default Selection)等。

5. Static静态文本控件:Static控件用于显示一些静态文本信息。

常用属性包括:文本内容(Static Text)、字体属性(Font Attributes)、文本颜色(Text Color)等。

6. Check Box复选框控件:Check Box控件用于显示一个选项,用户可以选择或取消选择该选项。

常用属性包括:选项文本(Check Box Text)、选项状态(Check Box State)、选项位置(Check Box Position)等。

7. Radio Button单选按钮控件:Radio Button控件用于显示一组互斥的选项,用户只能选择其中的一个选项。

常用属性包括:选项文本(Radio Button Text)、选项状态(Radio Button State)、选项位置(Radio Button Position)等。

8. Slider滑块控件:Slider控件用于在一个范围内选择一个数值。

常用属性包括:数值范围(Value Range)、默认数值(Default Value)、滑块大小(Slider Size)等。

9. Progress Bar进度条控件:Progress Bar控件用于显示一个操作的进度。

常用属性包括:进度范围(Progress Range)、当前进度(Current Progress)、进度栏宽度(Progress Bar Width)等。

MFC常用控件使用

MFC常用控件使用

MFC常用控件使用MFC(Microsoft Foundation Classes)是一个用于Windows平台的C++类库,用于开发基于Windows的图形用户界面应用程序。

MFC提供了许多常用的控件,开发人员可以使用这些控件来构建各种类型的Windows应用程序。

下面是一些常用的MFC控件和它们的使用方法:1. Button控件:Button控件用于创建按钮。

创建Button控件的方法是通过调用CButton类的Create函数,指定按钮的风格、位置和大小等参数。

之后,可以使用CButton类的成员函数来设置按钮的文本、图片和事件处理程序等。

3. List Box控件:List Box控件用于创建列表框,用于显示列表项。

创建List Box控件的方法是通过调用CListBox类的Create函数,指定列表框的风格、位置和大小等参数。

之后,可以使用CListBox类的成员函数来添加、删除和获取列表项等。

5. Static控件:Static控件用于显示静态文本。

创建Static控件的方法是通过调用CStatic类的Create函数,指定静态文本的风格、位置和大小等参数。

之后,可以使用CStatic类的成员函数来设置静态文本的内容、字体和颜色等。

6. Slider控件:Slider控件用于创建滑动条。

创建Slider控件的方法是通过调用CSliderCtrl类的Create函数,指定滑动条的风格、位置和大小等参数。

之后,可以使用CSliderCtrl类的成员函数来设置滑动条的范围、当前位置和事件处理程序等。

7. Progress控件:Progress控件用于显示进度条。

创建Progress 控件的方法是通过调用CProgressCtrl类的Create函数,指定进度条的风格、位置和大小等参数。

之后,可以使用CProgressCtrl类的成员函数来设置进度条的范围、当前位置和事件处理程序等。

8. Tree Control控件:Tree Control控件用于显示树形结构。

mfcvslistboxcontrol控件用法 -回复

mfcvslistboxcontrol控件用法 -回复

mfcvslistboxcontrol控件用法-回复MFC VS ListBoxControl控件用法MFC(Microsoft Foundation Classes)是微软公司提供的一种编程框架,用于开发基于Windows操作系统的应用程序。

而ListBoxControl 控件是MFC中的一个常用控件,它用于显示和选择一系列文本或对象。

本文将分步介绍MFC中ListBoxControl控件的用法,帮助读者理解并学会如何使用这一控件。

第一步:准备开发环境和新建MFC项目要使用MFC中的ListBoxControl控件,首先需要准备开发环境。

安装Visual Studio等IDE和相应的MFC组件,以及了解C++编程和MFC 框架的基本知识。

接下来,新建一个MFC项目,选择对话框作为应用程序界面。

第二步:添加ListBox控件到对话框在新建的MFC项目中,双击打开对话框资源编辑器(Dialog Resource Editor)。

在资源视图中选择对话框,然后在工具箱(Toolbox)中找到ListBoxControl控件。

将ListBox控件拖拽到对话框上,调整控件的位置和大小。

第三步:修改ListBox控件的属性选中刚才添加的ListBox控件,右键点击属性(Properties)。

在属性栏中可以修改ListBox控件的各种属性,如边框样式、背景颜色、字体等。

根据需要进行设置,以符合应用程序的界面设计要求。

第四步:添加和删除列表项在MFC中,可以通过几种方法向ListBox控件中添加和删除列表项。

最简单的方法是在ListBox控件上右键点击,选择“编辑复制以创建”,然后输入新的列表项文本。

此外,还可以通过编程的方式来添加和删除列表项。

在MFC中,可以使用CListBox类提供的函数来操作ListBox控件。

在对话框类的头文件中,添加对ListBox控件的成员变量声明:cppCListBox m_listBox;在OnInitDialog()函数中,添加对ListBox控件的初始化和添加列表项的代码:cppm_listBox.SubclassDlgItem(IDC_LIST_BOX, this); 将ListBox控件和对话框关联m_listBox.AddString(_T("列表项1")); 添加列表项m_listBox.AddString(_T("列表项2"));如果需要删除列表项,可以使用DeleteString()函数,指定列表项的索引即可:cppm_listBox.DeleteString(0); 删除第一个列表项第五步:处理ListBox控件的事件ListBox控件有一些常用的事件,如选中列表项、双击列表项等。

MFC编程入门之二十四(常用控件:列表框控件ListBox)

MFC编程入门之二十四(常用控件:列表框控件ListBox)

MFC编程⼊门之⼆⼗四(常⽤控件:列表框控件ListBox) 前⾯两节讲了⽐较常⽤的按钮控件,并通过按钮控件实例说明了具体⽤法。

本⽂要讲的是列表框控件(ListBox)及其使⽤实例。

列表框控件简介 列表框给出了⼀个选项清单,允许⽤户从中进⾏单项或多项选择,被选中的项会⾼亮显⽰。

列表框可分为单选列表框和多选列表框,顾名思义,单选列表框中⼀次只能选择⼀个列表项,⽽多选列表框可以同时选择多个列表项。

列表框也会向⽗窗⼝发送通知消息。

这些通知消息含义如下: LBN_DBLCLK:⽤户⽤⿏标双击了⼀列表项,只有具有LBS_NOTIFY的列表才能发送该消息。

LBN_ERRSPACE:列表框不能申请⾜够的动态内存来满⾜需要。

LBN_KILLFOCUS:列表框失去焦点。

LBN_SELCANCEL:当前的选择被取消,只有具有LBS_NOTIFY的列表框才能发送该消息。

LBN_SETFOCUS:列表框获得输⼊焦点。

WM_CHARTOITEM:当列表框收到WM_CHAR消息后,向⽗窗⼝发送该消息,只有具有LBS_WANTKEYBOARDINPUT风格的列表框才会发送该消息。

WM_VKEYTOITEM:当列表框收到WM_KEYDOWN消息后,向⽗窗⼝发送该消息,只有具有LBS_WANTKEYBOARDINPUT风格的列表框才会发送该消息。

列表框控件的创建 MFC将列表框控件的所有操作都封装到了CListBox类中。

创建列表框控件时,可以在对话框模板中直接拖⼊列表框控件ListBox,然后添加控件变量使⽤。

但如果需要动态创建列表框,就要⽤到CListBox类的Create成员函数了。

Create成员函数的原型如下: virtual BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID ); 参数rect指定了列表框控件的位置和尺⼨,pParentWnd为⽗窗⼝的指针,nID⽤于指定列表框控件的ID。

MFC各种控件属性介绍

MFC各种控件属性介绍

MFC各种控件属性介绍MFC(Microsoft Foundation Classes)是一组用于开发Windows应用程序的C++类库。

它提供了许多用于创建GUI(Graphical User Interface)界面的控件,这些控件可以用于显示和操作数据。

下面是对一些常见的MFC控件属性的介绍:1. Button(按钮)控件:Button控件用于触发事件或执行一些操作。

它有几个常用的属性,如按钮文本(Caption),按钮样式(Style),按钮位置(Position)等。

样式属性可以设置按钮的外观(如3D效果、边框等),并可以选择不同的按钮类型(如radio、checkbox等)。

3. List Box(列表框)控件:List Box控件用于显示一系列列表项。

它有属性用于设置列表框的大小(Size),位置(Position),以及显示模式(SelectionMode)等。

其他属性还包括排序(Sort),可见项数(VisibleItems)以及是否多选(Multiselect)等。

5. Check Box(复选框)控件:Check Box控件用于允许用户选择一个或多个选项。

它有属性用于设置复选框的大小(Size),位置(Position),选择状态(Checked),以及显示文字(Caption)等。

6. Radio Button(单选按钮)控件:Radio Button控件用于只允许用户从一组选项中选择一个。

它有属性用于设置单选按钮的大小(Size),位置(Position),选择状态(Checked),以及显示文字(Caption)等。

一组互斥的单选按钮应该放在同一个命名容器内。

7. Slider(滑动条)控件:Slider控件用于接受用户通过滑动操作选择一个数值。

它有属性用于设置滑动条的大小(Size),位置(Position),范围(Range),以及当前值(Value)等。

其他属性还包括方向(Orientation)和是否显示刻度线(TickMarks)等。

VC++之列表控件(CListCtrl)中加入复选框

VC++之列表控件(CListCtrl)中加入复选框

VC++之列表控件(CListCtrl)中加入复选框目的:使列表框(CListCtrl)的每个项(item)前面有个复选,用来标明是否选中,提交数据是只选择选中的方法:为列表框(CListCtrl)多加一个LVS_EX_CHECKBOXES风格m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_CHEC KBOXES);添加的项(即“行”)的第一列总会在项目名前出现一个复选框(添加项后才能看到复选框)m_list.InsertColumn(0,"选取",LVCFMT_LEFT,50); //添加列标题m_list.InsertColumn(1,"1",LVCFMT_LEFT,50);m_list.InsertColumn(2,"2",LVCFMT_LEFT,50);m_list.InsertColumn(3,"3",LVCFMT_LEFT,50);m_list.InsertItem(0,""); //添加项(即行标题)m_list.InsertItem(1,"");m_list.SetItemText(0,1,"sdf");m_list.SetItemText(1,0,"sdf"); //设置项的各列数据时也可更改行标题,即行的第一列的文字m_list.SetItemText(1,1,"sdf");m_list.SetItemText(1,2,"sdf");m_list.SetItemText(1,3,"sdf");/************************************************************************** ********也可以使用以下方法设置数据m_list.SetBkColor(RGB(255,255,255)); //设置背景m_list.SetTextBkColor(RGB(255,255,255));//设置list对话框的列LV_COLUMN lvc;lvc.mask=LVCF_TEXT|LVCF_SUBITEM|LVCF_WIDTH|LVCF_FMT;//mask 指定可用成员lvc.fmt=LVCFMT_LEFT;lvc.iSubItem=0;lvc.pszText=_T("A");lvc.cx=50; //列宽, 以像素为单位.m_list.InsertColumn(1,&lvc);lvc.iSubItem=1;lvc.pszText=_T("B");lvc.cx=50;m_list.InsertColumn(2,&lvc);。

mfc列表框控件的使用

mfc列表框控件的使用

MFC列表框控件的使用1. 介绍MFC(Microsoft Foundation Classes)是微软公司提供的一套用于开发Windows 桌面应用程序的C++类库。

MFC列表框控件是其中的一种常用控件,它可以用来显示和编辑列表中的项。

在本文中,我们将学习如何使用MFC列表框控件来创建、显示和操作列表中的数据项。

2. 创建列表框控件首先,我们需要在对话框资源中添加一个列表框控件。

打开Visual Studio,创建一个新的MFC应用程序项目,并选择对话框作为应用程序类型。

然后,在资源视图中双击IDD_DIALOG1以打开对话框编辑器。

在工具箱中找到列表框控件(List Box),并将其拖放到对话框上。

3. 设置属性选中刚刚添加的列表框控件,在属性窗口中可以设置其各种属性。

3.1 样式(Style)样式属性定义了列表框的外观和行为。

常见的样式包括:•单选(Single):只能选择一个项。

•多选(Multiple):可以选择多个项。

•排列(Sort):自动按字母顺序排序。

•水平滚动条(Horizontal Scrollbar):显示水平滚动条。

•垂直滚动条(Vertical Scrollbar):显示垂直滚动条。

3.2 数据源(Data)数据源属性定义了列表框中显示的数据项。

可以通过以下几种方式设置数据源:•字符串数组(String Array):将一个字符串数组赋给列表框。

•整数数组(Integer Array):将一个整数数组赋给列表框,每个整数对应一个数据项。

•数据库记录集(Database Recordset):将数据库查询结果赋给列表框。

3.3 绑定变量(Bound Variable)绑定变量属性定义了与列表框关联的变量。

当用户选择某个项时,该变量会被更新。

可以使用以下几种类型的变量:•字符串变量(String Variable):保存选中项的文本。

•整数变量(Integer Variable):保存选中项的索引。

列表框控件(CListBox)和列表控件

列表框控件(CListBox)和列表控件

VC++MFC编程技术--第五章列表框控件(CListBox)和列表控件(CListCt...列表框主要用于输入,它允许用户从所列出的表项中进行单项或多项选择,被选择的项呈高亮度显示.列表框具有边框,并且一般带有一个垂直滚动条.列表框分单选列表框和多重选择列表框两种.单选列表框一次只能选择一个列表项,而多重选择列表框可以进行多重选择.5.1 MFC的CListBox类MFC的CListBox类封装了列表框.CListBox类的Create成员函数负责列表框的创建,该函数的声明是BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );参数dwStyle指定了列表框控件的风格,如表6.10所示,dwStyle可以是这些风格的组合.rect说明了控件的位置和尺寸.pParentWnd指向父窗口,该参数不能为NULL。

nID则说明了控件的ID。

如果创建成功,该函数返回TRUE,否则返回FALSE.5.2 CListBox类的成员函数CListBox类的成员函数有数十个之多.需要说明的是,可以用索引来指定列表项,索引是从零开始的.CListBox成员函数提供了下列函数用于插入和删除列表项int AddString( LPCTSTR lpszItem );该函数用来往列表框中加入字符串,其中参数lpszItem指定了要添加的字符串.函数的返回值是加入的字符串在列表框中的位置,如果发生错误,会返回LB_ERR或LB_ERRSPACE(内存不够).如果列表框未设置LBS_SORT风格,那么字符串将被添加到列表的末尾,如果设置了LBS_SORT风格,字符串会按排序规律插入到列表中.int InsertString( int nIndex, LPCTSTR lpszItem );该函数用来在列表框中的指定位置插入字符串.参数nIndex给出了插入位置(索引),如果值为-1,则字符串将被添加到列表的末尾.参数lpszItem指定了要插入的字符串.函数返回实际的插入位置,若发生错误,会返回LB_ERR或LB_ERRSPACE.与AddString函数不同,InsertString函数不会导致LBS_SORT 风格的列表框重新排序.不要在具有LBS_SORT风格的列表框中使用InsertString函数,以免破坏列表项的次序.int DeleteString( UINT nIndex );该函数用于删除指定的列表项,其中参数nIndex指定了要删除项的索引.函数的返回值为剩下的表项数目,如果nIndex超过了实际的表项总数,则返回LB_ERR.void ResetContent( );该函数用于清除所有列表项.int Dir( UINT attr, LPCTSTR lpszWildCard );该函数用来向列表项中加入所有与指定通配符相匹配的文件名或驱动器名.参数attr为文件类型的组合。

clistbox,表格

clistbox,表格

竭诚为您提供优质文档/双击可除clistbox,表格篇一:VcmFc列表框(clistbox)控件列表框控件简单应用重复性的过程我就不详细讲明了,只给出类里面函数的解释。

intclistbox::addstring(lpctstRlpszitem);//添加一个项,lpszitem是项文本内容intclistbox::insertstring(intnindex,lpctstRlpszitem );//同上,只不过这个可以指定项位置(索引),由参数nindex指定intclistbox::getcursel()const;//获取当前选中项的索引,函数返回索引值intclistbox::gettext(intnindex,cstring//根据索引获得项文本intclistbox::getcount()const;//获取项数量voidclistbox::Resetcontent();//删除列表框所有的项intclistbox::deletestring(uintnindex);//根据项索引从列表框删除一个项intclistbox::setitemheight(intnindex,uintcyitemheig ht);//设置一个项的高度,注意:列表框具有//lbs_owneRdRawVaRiable风格才可以单独设置一个项的高度,否则是所有项的高度自绘列表框这里自绘要达到的效果,就是简单模仿一下qq界面里类似列表框控件的那种效果,先往对话框里添加列表框控件.然后再改一下列表框的属性,所有者绘制项选择固定,有字符串前面打上勾.接着准备两张位图,一张用于列表框的背景,一张用于项选中时的背景,id号分别为:idb_bk、idb_selected 如下两张位图:再导入五张位图(qq头像),id号保持默认不变。

从clistbox派生出子类cnewlistbox,往cnewlistbox 添加一个函数,用于画位图,函数如下:voidcnewlistbox::drawbk(cdc*pdc,cRectrect,uintuidbk) {cdcmemdc;memdc.createcompatibledc(pdc);//兼容dccbitmapbmp;bmp.loadbitmap(uidbk);//加载位图bitmapbmpinfo;bmp.getbitmap(//获取位图信息memdc.selectobject(//选入位图pdc->stretchblt(rect.left,rect.top,rect.width(),rect.height(),bmp.deleteobject();memdc.deletedc();}然后给cnewlistbox添加wm_eRasebkgnd消息处理函数,这个消息是系统擦除背景时产生。

列表框CListBox及按钮使用 共36页

列表框CListBox及按钮使用 共36页

LBS_USETABSTOPS
告 知 列 表 框 在 加 入 字 符 串 列 表 项 时 加 入 tab 字 符
L B S _2W2.A07N.2T0K19E Y B O A R D I N P U T
允 许 应 用 程 序 通 过 发 送 WM_VKEYTOITEM 和 W M _ C H A R T O I T E M 消 息 给 列 表 框 的 所 有 者 来14处 理
的列表框的WM_KEYDOWN
22.07.2019
22
4. 创建和初始化CListBox对象
构造函数CListBox::CListBox()和关键字new 为CListBox对象分配一个实例;并返回指向该 对象的指针:
ClistBox *pMyListBox = new CListBox;
CListBox::Create()初始化指针pMyListBox。 初始化CListBox对象并赋于它一个Windows列 表框, 设置其参数和样式。
22.07.2019
23
4. 创建和初始化CListBox对象
CListBox::Create() 声明如下:
BOOL Create
(
DWORD dwStyle, //列表框控件的窗口样式
const Recy& rect,//控件的大小和位置矩形
CWnd* pParentWnd,//指向控件所有者的指针
ResetContent() 清除列表框中的所有项
SelectString()
在单选列表框中搜索并选择一字符串
22.07.2019
21
(5) 虚拟方法
CLstBox类还声明了几个虚拟方法,可从CListBox类中派 生一些类替换到你的类中。

MFC----ListBox用法

MFC----ListBox用法

MFC----ListBox用法VC++2005 MFC ListBox(列表框)的使用作者:邵盛松2008年9月29日星期一ListBox的操作比较简单1.添加数据声明控件变量的类别为Control,变量类型为CListBox,变量名为m_ListBox_Content.m_ListBox_Content.AddString(_T("123"));m_ListBox_Content.AddString(_T("汉字"));m_ListBox_Content.AddString(_T("English"));m_ListBox_Content.AddString(_T("!@#$%^&*()"));2.获取数据CString s;m_ListBox_Content.GetText(1,s);MessageBox(s,_T("取得第2行数据"),MB_OK);s.ReleaseBuffer();将会得到"汉字"这个字符串,如果没有得到"汉字"这个字符串,是因为ListBox的Sort属性设为True了.设为False之后就按照你编写的顺序写入.3.获取选择的数据首先要将ListBox的Selection属性设置为Multiple;int nSel;nSel=m_ListBox_Content.GetCurSel();CString s;m_ListBox_Content.GetText(nSel,s);MessageBox(s,_T("您选择的是"),MB_OK);s.ReleaseBuffer();4.获取选择ListBox项的多个数据首先要将ListBox的Selection的属性设置为Multipleint nSel = m_ListBox_Content.GetSelCount();CArray< int,int& > arrayListSel;arrayListSel.SetSize(nSel);m_ListBox_Content.GetSelItems(nSel,arrayListSel.GetData());CString s = _T("");for( int i=0; i< nSel; i++ ){m_ListBox_Content.GetText( arrayListSel[i], s);MessageBox(s,_T("您选择的是"),MB_OK);}5.双击删除所选项添加一个ListBox的双击事件m_ListBox_Content.DeleteString(m_ListBox_Content.GetCurSel());6.设置listbox的设置水平滚动条void Cjmail_testDlg::SetListBoxSPGD(){// 设置listbox 的水平滚动条CString str;CSize sz;int dx=0;CDC *pDC = this->GetDC();//find the longest string!for (int i=0;i < m_ctlList2.GetCount();i++){m_ctlList2.GetText( i, str );sz = pDC->GetTextExtent(str);if (sz.cx > dx)dx = sz.cx;}this->ReleaseDC(pDC);//下面的代码屏蔽掉垂直滚动条所占的客户区的尺寸CRect rectWindow,rectClient;this->m_ctlList2.GetClientRect(rectClient);this->m_ctlList2.GetWindowRect(rectWindow);CSize extSize=rectWindow.Width()-rectClient.Width();//设置水平滚动条的属性this->m_ctlList2.SetHorizontalExtent(dx+extSize.cx);// 设置listbox 的水平滚动条}。

mfc中listbox控件的addstring -回复

mfc中listbox控件的addstring -回复

mfc中listbox控件的addstring -回复mfc中listbox控件的addstring是一种用于向列表框中添加字符串的方法。

这个方法是非常常用的,可以用来实现诸如日志记录、信息展示等功能。

在mfc中,用户可以通过一系列的步骤来实现addstring方法的调用和使用。

首先,我们需要创建一个MFC应用程序。

在Visual Studio中,选择“创建新项目”,然后选择“MFC应用程序”,填写项目名称和路径等信息,点击“确定”按钮即可创建一个新的MFC应用程序。

在创建好的MFC应用程序中,我们可以看到自动生成了一个对话框。

接下来,我们需要在对话框中添加一个列表框控件。

在资源视图中,找到对应的对话框资源,并双击打开。

在对话框编辑器中,拖拽一个列表框控件到对话框中的合适位置。

可以根据需要调整列表框的大小和位置。

接下来,我们需要为列表框控件添加一个变量。

选择列表框控件,右键点击,选择“添加变量”。

在弹出的对话框中,填写变量名称和变量类型等信息。

点击“添加”按钮后,会自动生成一个与列表框控件关联的变量。

这个变量可以用来在代码中引用列表框控件。

接下来,我们可以在代码中调用addstring方法来向列表框中添加字符串。

首先,打开对话框关联的头文件,找到列表框控件的变量声明。

可以看到相关的成员变量是一个CListBox类型的指针变量。

我们可以使用这个变量来调用addstring方法。

在代码中,通过列表框控件的变量名调用addstring方法。

例如,假设列表框的变量名为m_listBox,可以使用m_listBox.addstring("Hello, World!")来向列表框中添加一个字符串。

除了普通的字符串,addstring方法还可以添加其他类型的数据。

例如,可以添加整数、浮点数等。

在添加这些数据类型时,需要使用相关的格式转换函数将数据转换为字符串。

例如,可以使用CString的Format函数将整数转换为字符串,并通过addstring方法将字符串添加到列表框中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

列表框控件简单应用
重复性的过程我就不详细讲明了,只给出类里面函数的解释。

int CListBox::AddString( LPCTSTR lpszItem );//添加一个项,lpszItem是项文本内容
int CListBox::InsertString( int nIndex, LPCTSTR lpszItem );//同上,只不过这个可以指定项位置(索引),由参数nIndex指定
int CListBox::GetCurSel( ) const;//获取当前选中项的索引,函数返回索引值
int CListBox::GetText( int nIndex,CString &rString ) const;//根据索引获得项文本
int CListBox::GetCount( ) const;//获取项数量
void CListBox::ResetContent( );//删除列表框所有的项
int CListBox::DeleteString( UINT nIndex );//根据项索引从列表框删除一个项
int CListBox::SetItemHeight( int nIndex, UINT cyItemHeight );//设置一个项的高度,注意:列表框具有
//LBS_OWNERDRAWVARIABLE风格才可以单独设置一个项的高度,否则是所有项的高度
自绘列表框
这里自绘要达到的效果,就是简单模仿一下QQ界面里类似列表框控件的那种效果,先往对话框里添加列表框控件.
然后再改一下列表框的属性,所有者绘制项选择固定,有字符串前面打上勾.
接着准备两张位图,一张用于列表框的背景,一张用于项选中时的背景,ID号分别为:IDB_BK、IDB_SELECTED
如下两张位图:
再导入五张位图(QQ头像),ID号保持默认不变。

从CListBox派生出子类CNewListBox,往CNewListBox添加一个函数,用于画位图,函数如下:
void CNewListBox::DrawBK(CDC *pDC, CRect rect, UINT uIDBK)
{
CDC memDC;
memDC.CreateCompatibleDC(pDC);//兼容DC
CBitmap bmp;
bmp.LoadBitmap(uIDBK);//加载位图
BITMAP bmpInfo;
bmp.GetBitmap(&bmpInfo);//获取位图信息
memDC.SelectObject(&bmp);//选入位图
pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&memDC,
0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,SRCCOPY);
bmp.DeleteObject();
memDC.DeleteDC();
}
然后给CNewListBox添加WM_ERASEBKGND消息处理函数,这个消息是系统擦除背景时产生。

我们就在这个函数里画背景位图,函数代码如下:
BOOL CNewListBox::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
CRect rect;
GetClientRect(rect);
DrawBK(pDC,rect,IDB_BK);
return TRUE;
//return CListBox::OnEraseBkgnd(pDC);
}
再处理控件左键单击消息,刷新窗口,重绘背景,函数代码如下:
void CNewListBox::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
this->Invalidate();
CListBox::OnLButtonDown(nFlags, point);
}
再添加一个函数,用于添加图标和文本内容,函数如下:
int CNewListBox::AddItem(DWORD bmpID, LPCTSTR lpszItem)
{
int Index=AddString(lpszItem);
SetItemData(Index,bmpID);
return Index;
}
添加DrawItem虚函数,代码如下:
void CNewListBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your code to draw the specified item
CDC dc;
dc.Attach(lpDrawItemStruct->hDC);//dc
CRect rect=lpDrawItemStruct->rcItem;//项区域
if(lpDrawItemStruct->itemState&ODS_SELECTED)
DrawBK(&dc,rect,IDB_SELECTED);
CRect bmpRect(rect.left+2,rect.top+4,35,rect.bottom-4);//位图头像区域 DrawBK(&dc,bmpRect,lpDrawItemStruct->itemData);
rect.left+=40;
CString strText;
GetText(lpDrawItemStruct->itemID,strText);
dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(RGB(0,255,0));//设置字体颜色
dc.DrawText(strText,rect,DT_VCENTER|DT_LEFT|DT_SINGLELINE);
dc.Detach();
}
给列表框关联变量m_ListBox,类型为CNewListBox,对话框初始化函数添加代码如下:
m_ListBox.AddItem(IDB_BITMAP1,"人生几何(如果...)");
m_ListBox.AddItem(IDB_BITMAP2,"天下H(记得那时候...)");
m_ListBox.AddItem(IDB_BITMAP3,"聆听(小鸟在唱歌...)");
m_ListBox.AddItem(IDB_BITMAP4,"岁月无声(千杯酒...)");
m_ListBox.AddItem(IDB_BITMAP5,"大地(在那些....)");
m_ListBox.SetItemHeight(0,40);//设置高度
运行效果:
这里有一个问题,那就单击选项时窗口闪烁的很明显,如果不绘制背景和使用内存DC的话,窗口闪烁可能会小一点
关于列表框背景位图的问题,可以响应对话框的WM_CTLCOLOR消息,在这个消息处理函数中,判断是否为列表框,如果是那就返回一个位图画刷,如在对话框类添加一个CBrush变量brush;之后在对话框初始函数里创建位图画刷:
CBitmap bmp;
bmp.LoadBitmap(IDB_BK);
brush.CreatePatternBrush(&bmp);
WM_CTLCOLOR消息处理函数代码:
HBRUSH CThirdDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_LISTBOX)
{
return (HBRUSH)brush.GetSafeHandle();
}
else return hbr;
// TODO: Return a different brush if the default is not desired }。

相关文档
最新文档