问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎样设置ListCtrl控件中行的高度

发布网友 发布时间:2023-09-20 09:39

我来回答

1个回答

热心网友 时间:2024-11-14 16:34

1、 ListCtrl添加左键单击(NM_CLICK)函数(这个很重要)。

2、 ListCtrl风格设置(一般是网格)。
一般listctrl默认view风格为report,一般在OnInitDialog函数中:
LONG m_lStyle;
m_lStyle = GetWindowLong( m_list.m_hWnd , GWL_STYLE);//获取当前窗口style
m_lStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)
m_lStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)
//m_lStyle |= LVS_SHOWSELALWAYS;//一直选中item
m_list.SetExtendedStyle( m_lStyle );//设置扩展风格
3、 插入数据
一般在OnInitDialog函数中:
//m_list.InsertColumn( 0, "ID", LVCFMT_LEFT, 40 );
//插入列
m_list.InsertColumn( 1, "NAME", LVCFMT_LEFT, 50 );
int nRow = m_list.InsertItem(0, "11");//插入行
m_list.InsertItem(1,"12");
m_list.SetItemText(nRow, 1, "jacky");//设置数据
m_list.SetItemText(nRow+1, 1, "James");
4、 得到listctrl中所有行的checkbox的状态
在OnNMClickList1函数中:
方法一:
m_list.SetExtendedStyle(LVS_EX_CHECKBOXES);
CString str;
for(int i=0; i<m_list.GetItemCount(); i++)
{
if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED || m_list.GetCheck(i))
{
str.Format(_T("第%d行的checkbox为选中状态"), i+1);
AfxMessageBox(str);
}
}
方法二:
POSITION pos = m_list.GetFirstSelectedItemPosition();
CString str;
if (pos == NULL)
TRACE0("No items were selected!/n");
else
{
while (pos)
{
int nItem = m_list.GetNextSelectedItem(pos);
str.Format(_T("选中了第%d行"), nItem+1);
AfxMessageBox(str);
}
}
5、 删除所有列(即清空)
while ( m_list.DeleteColumn (0));
6、 得到单击的listctrl的行列号
// 方法一:
DWORD dwPos = GetMessagePos(); //返回表示屏幕坐标下光标位置的长整数值
CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
m_list.ScreenToClient(&point); //把屏幕上指定点的屏幕坐标转换成用户坐标
LVHITTESTINFO lvinfo;
lvinfo.pt = point;
lvinfo.flags = LVHT_ABOVE;
int nItem = m_list.SubItemHitTest(&lvinfo);
if(nItem != -1)
{
CString strtemp;
strtemp.Format("单击的是第%d行第%d列", lvinfo.iItem, lvinfo.iSubItem);
AfxMessageBox(strtemp);
}
// 方法二:
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->iItem != -1)
{
CString strtemp;
strtemp.Format("单击的是第%d行第%d列", pNMListView->iItem, pNMListView->iSubItem);
AfxMessageBox(strtemp);
}
7、 右键点击listctrl的item弹出菜单
在资源里画菜单
添加listctrl控件的NM_RCLICK消息相应函数
//右键单击的函数
void CListCtrlDlg::OnNMRclickList1(NMHDR *pNMHDR, LRESULT *pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->iItem != -1)
{
DWORD dwPos = GetMessagePos(); //返回表示屏幕坐标下光标位置的长整数值
CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
CMenu menu;
VERIFY( menu.LoadMenu( IDR_MENU1 ) );
CMenu* popup = menu.GetSubMenu(0); //取得被指定菜单激活的下拉式菜单或子菜单的句柄
ASSERT( popup != NULL );
popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,point.x, point.y, this ); //在指定位置显示快捷菜单,并跟踪菜单项的选择
}
*pResult = 0;
}
著的性质是能使荧光物质发光,另外还可以灭菌 。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 如何设置listview中的行高 如何根据屏幕大小调整listview行高 《阳光之下》正在热播 彭冠英演绎地狱反派窒息感十足 阳光之下柯滢被带到房间是哪集 阳光之下一共多少集 哈弗h6,行驶4.9万公里用什么机油? 烛焰之力是什么时候上映的 烛焰之力剧情介绍 ...而且在管子里的玻璃水从右边车轮那儿漏出来了?是怎么回事哦?_百度... 途安后车窗玻璃水管车底漏了怎么办 在安徽合肥学做糕点有前途吗?刚高中毕业 合肥这边哪家的面包糕点培训是比较好的,而且能够包分配的呢_百度知 ... 做烘焙学徒有包吃住吗? 小米手机屏幕顶部HD怎么取消? 夏季养生排湿是关键,这样做事半功倍 红米note 34g手机语音输入口是哪个用图解释? 光纤猫语音通话口用什么字母 金色毛的小狗叫什么 欧缇丽喷雾正确用法 毕业拿到毕业证后,直接签订劳动合同还用签三方吗 画蛇添足寓言故事完整版 配音的要求有哪些? 一般地,一个大于10的数可以表示成 形式,其中a的取值范围 ,n是 ,这种... 初一上学期科学记数法。在线等。 科学计数法怎么表示大小? 9066900的科学计数法? 科学计数法的标准形式是什么? AT变速箱什么时间换油 我们单位给我们缴纳了五险了,现在有人说要再买一份商业保险再好... 罗湖联想专卖店在哪? 石家庄联想专卖店的联系方式 越多越好 求泉州益华电脑城联想专卖店的电话。 如何形容三峡的美景? 我提交一个商标注册后接下来我需要做什么. 罗汉果菊花茶什么味道 方向盘怎么控制方向的 方向盘怎么控制车的方向是什么原理? 长城m4电动方向由什么控制 快乐的感觉是什么 陈浩的介绍