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 ' 清除列表框。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)