操作ctrllist的问题!!谢谢回答 我想设置,点击ctrllist的时候选中的不是一行,而是一个单元格,谢谢回答!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 中国人自己的CodeProject编程资料库 m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT); 在OnSelectChange中自己设定选中区域 学习中 谢谢楼上的,我要点击ctrllist的时候选中的是一个单元格,但是默认的只有第一列可以实现,其它的不行 不设置 LVS_EX_FULLROWSELECT 好了.. 我写了俩段代码,但是有错误,谢谢大家给看下void CPropPage1::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult) { NMITEMACTIVATE* nm=(NMITEMACTIVATE*)pNMHDR; invalidate_grid(m_sel_row,m_sel_col); m_sel_row=nm->iItem; m_sel_col=nm->iSubItem; invalidate_grid(m_sel_row,m_sel_col); MessageBox("123"); *pResult = 0;}void CPropPage1::invalidate_grid(int row, int col){ CRect r; if(col==0) GetItemRect(row,&r,LVIR_LABEL); else GetSubItemRect(row,col,LVIR_BOUNDS,r); InvalidateRect(&r);} 报错,说, GetItemRect(row,&r,LVIR_LABEL);和GetSubItemRect(row,col,LVIR_BOUNDS,r);未定义 这个问题我来帮你解决:下面是一段单击鼠标左键即选中List控件中的单元格的代码:(类似于点击Excel表格)void CListView::OnLButtonDown(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call default LVHITTESTINFO info; CListCtrl &listctrl=GetListCtrl(); info.pt=point; info.flags=LVHT_ONITEMLABEL; if((listctrl.SubItemHitTest(&info))>=0) { int col=info.iSubItem; //当前列 int row=info.iItem; //当前行 CString s; s.Format("你选择了第%d行,第%d列!",row,col); AfxMessageBox(s); } CListView::OnLButtonDblClk(nFlags, point);}这里主要用到了LVHITTESTINFO 类. 【win32 sdk】关于usb交互程序 再问CEDIT问题! 拖拽如何实现 VC如何显示JPEG图像 ****** 原码开放, 一个最底层混音器 ****** 菜鸟问题2 请问在internet上,两台机器如何通信(包括远程调用)要用到那些技术 【一个老问题】获得硬盘系列号 一个极其弱智类与控件连接的问题!答对了高分相送! 基础C++polygon求面积算法 想要在属性表单的某一个属性页活动的时候处理 怎么写 xml是纯文本吗?可以保存二进制信息吗?如果不能存二进制,为什么说新版的office是用xml格式保存的呢?
学习中
{
NMITEMACTIVATE* nm=(NMITEMACTIVATE*)pNMHDR;
invalidate_grid(m_sel_row,m_sel_col);
m_sel_row=nm->iItem;
m_sel_col=nm->iSubItem;
invalidate_grid(m_sel_row,m_sel_col);
MessageBox("123");
*pResult = 0;
}void CPropPage1::invalidate_grid(int row, int col)
{
CRect r;
if(col==0)
GetItemRect(row,&r,LVIR_LABEL);
else
GetSubItemRect(row,col,LVIR_BOUNDS,r);
InvalidateRect(&r);
}
和GetSubItemRect(row,col,LVIR_BOUNDS,r);
未定义
下面是一段单击鼠标左键即选中List控件中的单元格的代码:(类似于点击Excel表格)
void CListView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
LVHITTESTINFO info;
CListCtrl &listctrl=GetListCtrl();
info.pt=point;
info.flags=LVHT_ONITEMLABEL;
if((listctrl.SubItemHitTest(&info))>=0)
{
int col=info.iSubItem; //当前列
int row=info.iItem; //当前行
CString s;
s.Format("你选择了第%d行,第%d列!",row,col);
AfxMessageBox(s);
}
CListView::OnLButtonDblClk(nFlags, point);
}
这里主要用到了LVHITTESTINFO 类.