MFC ListControl用法
http://blog.csdn.net/lovton/article/details/6527208
1.建立一个对象m_LogList
步骤:在对话listcontrol控件右键点击添加变量-》类别Control->变量类型CListCtrl-》变量名m_LogList-》完成。
2.listcontrol// 设置扩展风格l风格
在OnInitDialog()函数内添加下面代码:
DWORD dwStyle = m_LogList.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT;//鼠标选中某行使整行高亮(只适用与属性为report 风格的listctrl )
dwStyle |= LVS_EX_GRIDLINES;// 列表有网格线(只适用与report 风格的listctrl )
m_LogList.SetExtendedStyle(dwStyle); // 设置扩展风格
3.插入数据
插入列头:
int nIndex = 0;
m_LogList.InsertColumn(nIndex++, _T("序号"), LVCFMT_CENTER,60);
m_LogList.InsertColumn(nIndex++, _T("日志类型"), LVCFMT_CENTER,80);
插入行头:m_LogList.InsertItem(i, Int32ToCString(m_pHQReadLogInfo[i].nNo));//把整型转换为字符串函数(Int32ToCString),i为第几行,从0开始。
插入列表中的内容: m_list.SetItemText(i, j, "jacky");// 设置其它列数据,i,j分别表示第i行和第j列,i和j分别从0开始,如果已经插入了表头,j就从1开始。“jacky”报错,那么在属性中字符集改为“使用多字节符集”
在具体插入哪行:http://blog.csdn.net/lovton/article/details/6527208
4.点击右键出现菜单。
具体步骤:右键点击项目名-》添加-》资源-》Menu,建立主菜单。
添加函数,在对话框中右键点击listcontrol-》类向导-》消息-》WM_CONTEXTMENU->函数名称(OnContextMenu)
函数添加如下内容:注意 IDR_MENU1为菜单名 IDC_LIST1 listcontrol的ID名
void CJGHQLOGTOOLDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: 在此处添加消息处理程序代码
CWnd* pCtl = GetDlgItem(IDC_LIST1); if (pWnd == pCtl)
{
m_menu.LoadMenu(IDR_MENU1);
CMenu *pPopup;
pPopup = m_menu.GetSubMenu(); //获得子菜单指针 pPopup->EnableMenuItem(ID_TOEXCEL,MF_BYCOMMAND|MF_ENABLED); //允许菜单项使用
pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this); //显示弹出菜单,参数依次为(鼠标在菜单左边|跟踪右键,x,y,this)
pPopup->Detach();
m_menu.DestroyMenu();
}
}
5.删除数据
m_LogList.DeleteAllItems();或者
while(m_LogList.DeleteItem(0));
6. 得到点击右键的listctrl的行列号,左键类似
步骤:右键点击-》添加事件处理程序-》消息类型选择NM_RCLICK,对应函数处理名称为OnNMRClickList1
出现函数添加内容:
void CJGHQLOGTOOLDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// 方法一:
/*
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);
}
*/
*pResult = ;
}
7.在点击子菜单插入对话框
步骤:1.点击项目名字-》添加资源-》Dialog
2.MeNU菜单中点击右键添加事件处理程序-》COMMAND-》添加编辑
添加如下内容: void CJGHQLOGTOOLDlg::On132778()
{
// TODO: 在此添加命令处理程序代码
//int i,temp,k;
cDlgCheck dlg;
dlg.DoModal();
TRACE(dlg.m_strValue);
}
8.listcontrol列表数据实现分页功能
思路:添加俩个按钮上一页和下一页,把数据用结构体存起来,重复的删除和插入,就ok了
遇到慢慢更新。。。。
MFC ListControl用法的更多相关文章
- MFC ListControl用法合集
以下未经说明,listctrl 默认view 风格为report ------------------------------------------------------------------- ...
- MFC ListControl使用方法
在原来博客中有:MF CListControl 简单功能使用 推荐文章:MFC类CtrlList用法 今天又又一次来介绍点新东西:双击击listcontrol 做出响应.当然你能够做的还有非常多,比 ...
- MFC listcontrol 分列 添加行数据 点击列头排序
适用于 对话框程序 1.在工具箱中拖出 ListControl,然后右键-属性,view-Report 让你的ListControl变成这幅模样! 2.添加ListControl控件的control类 ...
- VS2013 MFC listcontrol 双击编辑
原文地址:http://blog.csdn.net/xianglifighter/article/details/17592209 最近在拿一些小的项目练习MFC,遇到不少问题,期中之一便是修改列表框 ...
- 【转】MFC CreateFont 用法
中国人自古就有自右至左.从上到下书写汉字的习惯.而当我们在自己所编写的应用程序中使用输出函数输出的总是自左至右的横排文字.有没有可能在我们的应用程序中实现竖写汉字的效果呢?笔者偶然发现了一种利用VC实 ...
- MFC——ComBox用法大全
Combo Box (组合框)控件很简单,可以节省空间.从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的.用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本 ...
- MFC listcontrol导出excel表格
// 导出ExcelCString CBackGroundDlg::ExportAsExcel(CString filename, CListCtrl &resultlist, CWnd * ...
- MFC CFileDialog用法例子。
Set it to TRUE to construct a File Open dialog box. Set it to FALSE to construct a File Save As dia ...
- MFC——AfxParseURL用法
1.功能: 该函数解析URL字符串并返回服务的类型及组件,包含在 afxinet.h 头文件中. 2.定义 BOOL AFXAPI AfxParseURL(LPCTSTRpstrURL,DWORD&a ...
随机推荐
- pymongo 例子
import pymongo class dbUtil(object): def __init__(self, tablename='functional_testing'): con = pymon ...
- .net与linux
Mono是什么? http://blog.sina.com.cn/s/blog_693ffe760100k5uh.html Mono是一个开放源代码,Linux版的Microsfot.NET开发平台 ...
- Java基础:三步学会Java Socket编程
Java基础:三步学会Java Socket编程 http://tech.163.com 2006-04-10 09:17:18 来源: java-cn 网友评论11 条 论坛 第一步 ...
- 在Htmel中添加flash
> >
- PHP裁剪图片
PHP裁剪图片 $src_path = '1.jpg'; //创建源图的实例 $src = imagecreatefromstring(file_get_contents($src_path)); / ...
- ssm框架整合小结
1.整合思路 一.Dao层:整合mybatis和spring 需要的jar包: 1.mybatis的jar包 2.Mysql数据库驱动 3.数据库连接池 4.Mybatis和spring的整合包. 5 ...
- Linux使用者管理(1)---用户账号
linux很重要的应用就是作为服务器的操作系统.服务器的作用是给多用户提供各种“服务”(可能是读服务器上的文件,或者是利用服务器进行数值计算)那么如果多用户共同拥有一台服务器,就需要对服务器上的用户进 ...
- MyEclipse 利用反向功能生成Java 实体类
1.Window -> Open Perspective -> MyEclipse Database Explorer 到DB Broswer界面 2.右键 -> New,新建一个数 ...
- 车牌识别LPR(七)-- 字符特征
第七篇:字符特征 选择的字符特征应该满足以下条件: (1)选取的字符特征具有较强的鲁棒性,不受字符变形.弯曲等影响. (2)两个字符的字符特征不能完全相同,但部分相同是允许的,即选择的字符特征是唯一的 ...
- 在XML里的XSD和DTD以及standalone的使用3----具体使用详解
本人亲自写的一个简单的测试例子 1.xsd定义 <?xml version="1.0" encoding="utf-8"?><xs:schem ...