MFC CListCtrl空间中,如果在鼠标点击某一个Item时,获得该Item的内容。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC CListCtrl空间中,如果在鼠标点击某一个Item时,获得该Item的内容。相关的知识,希望对你有一定的参考价值。

GetItemText()需要指定索引才能获得该Item的文本。如何在鼠标点击某一Item的时候,获得该Item的索引。并且让该项高亮。

高亮不会
int nId;
//首先得到点击的位置
POSITION pos=m_list.GetFirstSelectedItemPosition();
//得到行号,通过POSITION转化
nId=(int)m_list.GetNextSelectedItem(pos);
//得到列中的内容(0表示第一列,同理1,2,3...表示第二,三,四...列)
str=m_list.GetItemText(nId,0);*/
参考技术A int nItemIndes = m_clist.GetHotItem();即可获得单击的行号,然后使用

如何在MFC中用鼠标画直线

双缓存?
这个我不清楚,原来还有这样的命名,呵呵~
首先,鼠标左键点击按下的消息响应on_wm_rbuttondown(),这时候确立第一个点。
其次,鼠标移动的消息响应on_wm_mousemove(),这是关键。这里因为你要线随鼠标移动,如果你直接把当前点与第一步所得的点连接的话,你会发现整张图都是线。所以这里就需要你把原图复制一张出来并显示这张图(替换原图显示),然后每次响应鼠标移动的时候将当前点与第一步所得的点连接并画在这张复制出来的图上。
最后,鼠标左键点击放开的消息响应on_wm_lbuttonup()。这时候是确立最终点的。你只需画在原图上,并显示该图,并释放你复制出来的那张图就行了。
这是鼠标按下到放开形成一条直线的,你要2次点击也可以,就是在on_wm_rbuttondown()做个前后点击的判断取代on_wm_rbuttonup()。代码自己根据实际应用写吧。
参考技术A 用鼠标划线,用Device
context
,即设备上下文,用来在画布上划线和作图的。里面有很多工具,自己去查资料吧。用moveto(x,y)和Lineto(x,y);函数就可以了。
用鼠标控制也可以实现,也就是在mousemove中加点代码,让线随着鼠标做运动。动脑子好好想想吧,代码就不贴了。好久没用过VC了,呵呵

以上是关于MFC CListCtrl空间中,如果在鼠标点击某一个Item时,获得该Item的内容。的主要内容,如果未能解决你的问题,请参考以下文章

在MFC的CListCtrl中怎么实现当鼠标在一定的列双击时执行特定的函数?

CListCtrl (MFC) 选择点击通过控制UNDERNEATH列表

MFC中CListCtrl控件怎样获取某列的列号

MFC列表控件 CListCtr

MFC CListCtrl 右键单击​​标题

在 MFC 中的 CListCtrl 中禁用多项选择项上的按钮