如何在listctrl中添加edit控件和combo box控件

如何在listctrl中添加edit控件和combo box控件,第1张

1.定义成员变量:

CComboBox

m_Cmb

、、将它与组合框控件关联,

CEdit

m_Edit;、、将它与编辑框控件关联,

int

m_row,m_col

//记录用户点击的那个单元格所在的行与列号

2.添加listctrl的单击响应消息主要是完成了单击后将控件显示出来。添加代码如下

void

CControllerDialogAdd::OnClickListDoor(NMHDR*

pNMHDR,

LRESULT*

pResult)

{

//

TODO:

Add

your

control

notification

handler

code

here

LPNMLISTVIEW

pNMTreeView

=

reinterpret_cast<LPNMLISTVIEW>(pNMHDR)

//

TODO:

在此添加控件通知处理程序代码

POINT

PT

GetCursorPos(&PT)

m_DoorList.ScreenToClient(&PT)

LVHITTESTINFO

hitInfo

hitInfo.pt=PT

//hitem=m_Tree.GetSelectedItem()

m_DoorList.SubItemHitTest(&hitInfo)

if(hitInfo.flags

&

LVHT_ONITEMLABEL)//判断是否单击在文本上

{

CRect

rect

//

m_DoorList.GetSubItemRect(hitInfo.iItem,hitInfo.iSubItem,LVIR_BOUNDS,rect)

m_DoorList.GetSubItemRect(hitInfo.iItem,hitInfo.iSubItem,LVIR_BOUNDS,rect)

if

(hitInfo.iSubItem==0)

{

rect.right=rect.left+m_DoorList.GetColumnWidth(0)

}

else

if(hitInfo.iSubItem==1)//对列进行判断在这里我是1,2为edit,3,4为combo

box

{

CString

mes=m_DoorList.GetItemText(hitInfo.iItem,hitInfo.iSubItem)

//

rect.InflateRect(0,0,0,0)//增大组合框的高度使其可以容纳整行文本。

m_col=hitInfo.iSubItem

m_row=hitInfo.iItem

m_Edit.MoveWindow(&rect,TRUE)

m_Edit.ShowWindow(SW_NORMAL)

m_Edit.SetWindowText(mes)

m_Edit.BringWindowToTop()

m_Edit.SetFocus()//使组合框聚焦

}

else

if(hitInfo.iSubItem==2)

{

CString

mes=m_DoorList.GetItemText(hitInfo.iItem,hitInfo.iSubItem)

//

rect.InflateRect(0,0,0,0)//增大组合框的高度使其可以容纳整行文本。

m_col=hitInfo.iSubItem

m_row=hitInfo.iItem

m_Edit.MoveWindow(&rect,TRUE)

m_Edit.ShowWindow(SW_NORMAL)

m_Edit.SetWindowText(mes)

m_Edit.BringWindowToTop()

m_Edit.SetFocus()//使组合框聚焦

}

else

if(hitInfo.iSubItem==3)

{

CString

mes=m_DoorList.GetItemText(hitInfo.iItem,hitInfo.iSubItem)

//

rect.InflateRect(0,0,0,0)//增大组合框的高度使其可以容纳整行文本。

m_col=hitInfo.iSubItem

m_row=hitInfo.iItem

m_ComAct.MoveWindow(&rect,TRUE)

m_ComAct.ShowWindow(SW_NORMAL)

m_ComAct.SetWindowText(mes)

m_ComAct.BringWindowToTop()

m_ComAct.SetFocus()//使组合框聚焦

}

else

if

(hitInfo.iSubItem==4)

{

CString

mes=m_DoorList.GetItemText(hitInfo.iItem,hitInfo.iSubItem)

//

rect.InflateRect(0,0,0,0)//增大组合框的高度使其可以容纳整行文本。

m_col=hitInfo.iSubItem

m_row=hitInfo.iItem

VC++之列表控件(CListCtrl)中加入复选框 文章指数:0 CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。

目的:使列表框(CListCtrl)的每个项(item)前面有个复选,用来标明是否选中,提交数据是只选择选中的

方法:为列表框(CListCtrl)多加一个LVS_EX_CHECKBOXES风格

m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES)

添加的项(即“行”)的第一列总会在项目名前出现一个复选框(添加项后才能看到复选框)

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

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)

使用AddItem 方法为添加选项。

AddItem 方法,用于将项目添加到 ListBox 或 ComboBox 控件,或者将行添加到 MS Flex Grid

控件。不支持命名参数。

AddItem 方法示例代码,选OK增加100个项目到ComboBox控件

Private Sub Form_Click()

    Dim Entry, I, Msg   ' 声明变量。

    Msg = "选OK增加100个项目到ComboBox控件"

    MsgBox Msg   ' 显示信息。

    For I = 1 To 100   ' 计数值从 1 到 100。

        Entry = "Entry " & I   ' 创建输入项。

        Combo1.AddItem Entry   ' 添加该输入项。

    Next I

'    Msg = "选OK删除任一个Entry."

'    MsgBox Msg   ' 显示信息。

'    For I = 1 To 50   ' 确定如何

'        Combo1.RemoveItem I   ' 每隔一项

'    Next I   ' 删除。

'    Msg = "选OK删除全部"

'    MsgBox Msg   ' 显示信息。

'    Combo1.Clear   ' 清除列表框。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11346562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存