`
hyshucom
  • 浏览: 808353 次
文章分类
社区版块
存档分类
最新评论

CListCtrl 单击事件问题

 
阅读更多

搞了个wince的测试程序,里面用到CListCtrl控件,在响应其单击某一行的事件的时候,老是出问题。开始使用OnLvnItemchanged响应点击事件,发现一个问题。第一次点击某一行,可以正常响应对应的处理;处理完后,回来再点击同样一行就进不了处理了。哥们那个郁闷呀!后来才发现使用OnNMClick事件处理,其中的处理如下就正常了。

void CD3GMessageDlg::OnNMClickListMain(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_List.GetFirstSelectedItemPosition();
	if(pos == NULL)	return;
	int item = m_List.GetNextSelectedItem(pos);
	switch(item)
	{
	case 0:{	// 新建消息
		//MessageBox(L"新建消息");
		CRWMessage *pDlg = new CRWMessage(0, this, -1, -1);
		INT_PTR n = pDlg->DoModal();
		switch(n)
		{
			case IDOK:{
				free(pDlg);
			}break;
		}
		   }break;
	case 1:{	// 收件箱
		//MessageBox(L"收件箱");
		CMessageBox *pDlg = new CMessageBox(0, this, -1);
		INT_PTR n = pDlg->DoModal();
		switch(n)
		{
			case IDOK:{
				free(pDlg);
			}break;
		}
		   }break;
	case 2:{	// 待发件箱
		//MessageBox(L"待发件箱");
		CMessageBox *pDlg = new CMessageBox(0, this, 1);
		INT_PTR n = pDlg->DoModal();
		switch(n)
		{
			case IDOK:{
				free(pDlg);
			}break;
		}
		   }break;
	case 3:{	// 已发件箱
		//MessageBox(L"已发件箱");
		CMessageBox *pDlg = new CMessageBox(0, this, 2);
		INT_PTR n = pDlg->DoModal();
		switch(n)
		{
			case IDOK:{
				free(pDlg);
			}break;
		}
		   }break;
	case 4:{	// 信息设置
		//MessageBox(L"信息设置");
		CSetMessage *pDlg = new CSetMessage(0, this);
		INT_PTR n = pDlg->DoModal();
		switch(n)
		{
			case IDOK:{
				free(pDlg);
			}break;
		}
		   }break;
	case 5:{	// 存储状态
		//MessageBox(L"存储状态");
		CStorageState *pDlg = new CStorageState(0, this);
		INT_PTR n = pDlg->DoModal();
		switch(n)
		{
			case IDOK:{
				free(pDlg);
			}break;
		}
		   }break;
	case 6:{	// 关于
		CString about;
		about = L"App Name\t: D3GMessage\r\n";
		about += L"Version\t: 1.0\r\n";
		about += L"Author\t\t: brantyou\r\n";
		MessageBox(about);
		   }break;
	case 7:{	// 退出
		CDialog::OnOK();
		   }break;
	default:break;
	}

	*pResult = 0;
}

特发此贴记录一下。。。


分享到:
评论

相关推荐

    CListCtrl的主要事件及鼠标响应函数

    CListCtrl的主要事件及鼠标响应函数,CListCtrl的主要事件及鼠标响应函数

    clistctrl类中点击的排序功能

    关于clistctrl的用法,以及其中的点击表头实现排序的功能,以及获取鼠标点击的位置

    实现MFC CListCtrl控件的可编辑功能

    MFC的CListCtrl空间默认不能编辑。但可通过在特定地方显示编辑框,并读写编辑框的内容来间接实现CListCtrl的可编辑功能。

    可编辑子项的CListCtrl类

    可编辑子项的CListCtrl类,非常强大,我已经在工程中使用

    为CListCtrl上的每一项添加CCheckBox并响应点击

    代码包括一个CListCtrl继承类,为CListCtrl上的每一项添加CCheckBox,并重载WM_LBUTTONDOWN消息,将鼠标定位到每项的CheckBox上面,响应打击消息.

    clistctrl 排序实现

    实现了clistctrl 的单击 标题栏的 排序功能.mfc版本是vs2010

    CListCtrl子项高亮,可编辑

    可以实现CListCtrl第一次点击高亮,第二次点击可编辑。。。有详细的代码功能介绍,适合研究!

    继承CWnd重新写的CListCtrl

    可以改变单行高度,单个SubItem颜色,字体颜色等等的CListCtrl,初步实现了滚动条,响应点击消息~~

    列表框(CListCtrl)虚模式显示及排序实例

    本实例展示了CListCtrl虚模式显示大量数据的情况,并可根据点击列进行排序

    可设置单元格内容的CListCtrl

    CListCtrl 控件生成之后,无论你单击还是双击它的单元格,都没有任何反应。如果我们需要像EXCEL那样双击一个单元格后即可编辑该单元格的内容,那 怎么办呢?一个方法就是双击单元格之后,在该单元格的地方生成一个...

    使用了Acess和CListCtrl的管理系统

    本例是一个管理系统的例子,用了很多CListCtrl控件的用法!还包括连接Access数据库,将数据信息显示在CListCtrl控件中!可以点击编辑CListCtrl控件信息!

    VC之列表控件点击事件处理

    本文简单介绍下VC列表控件的点击事件。博客地址:http://blog.csdn.net/bingdianlanxin,有问题欢迎留言!

    重写CListCtrl类,行颜色显示,列自动排序

    重写的CListCtrl类,能改变行的颜色,能点击列标题后实现自动排序。同时包含VC2010下,CString转为Char*的技巧。类在VC6.0和VC2010下均编译通过。

    Grid Control Based on CListCtrl

    原有的代码不需要任何改变即可加入,可以轻易做出多种风格的CListCtrl,包括可编辑的表格,类似COMBOX的下拉列表,带图标的,更改背景颜色和前景颜色等,甚至有日期选项框,而且可以单独控制每一列,点击列头自动...

    CListCtrl 完全重绘 加上 32位双缓存

    功能有 多选,高亮重绘,滚动条重绘,表头重绘 并且可以点击,list背景重绘,32位栓缓存 等等 里面有些 注释 有的时原来的 有的时后加的 有的我也是拿来用用 不过有不懂可以一起研究下 如有改进 请给我发下 谢谢...

    C++ Clistctrl重绘内容行颜色 隔行变色

    VC++.NET Clistctrl重绘,可定义内容行颜色 以及鼠标点击各个状态的颜色,并实现了隔行变色,与最初默认的Clistctrl相比,漂亮了许多,也更加清淅了,用来显示列表数据更直观了。内含一个位图皮肤控件,用来实现一个...

    可改变颜色可排序的clistctrl扩展类

    该类是我在网上找的一个clistctrl的扩展类,但是不能排序,所以我添加了个功能单击列头字段进行排序,并且画排序图标!资源内有代码样例!

    MFC之自绘ClistCtrl列表控件

    开发环境:VS2013 框架:MFC、vc++ 功能:点击列表头排序、隔行换色、高亮显示选中、多行选中

    mfc_ListView/ListCtrl 实现点击表头排序与固定列宽

    1. 自定义CMyListView,继承自CListView, 实现点击表头进行该列排序以及固定某些列宽的功能。使用时直接继承此View即可。 2. 自定义CMyListCtrl, 继承自CMFCListCtrl, 同样实现上述功能,用于listctrl控件。使用...

    超级CListCtrl

    可实现像EXCEL一样的固定区域(拉动时不受影响),表示可分隔和合并成几个或一个过滤栏(制图的表格样式),可单独设置每个单元格的颜色,可动态创建各种控件,可设置单击时的选中行的各种样式.....

Global site tag (gtag.js) - Google Analytics