高手帮帮忙 分全给,150不要嫌少,就当帮个忙 怎么在视图中创建clistctrl,谁能给下代码,谢谢了先 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是基于文档--视图结构的话,视图基类用CListView,就能很方便的应用List了 listctrl也是窗口,Create后showwindow,记着在OnSize里调整大小. 在创建工程的最后一步选择的视图类是CListView不就可以用CListCtrl了 在创建工程的时候,选择CListView作为视图基类,然后在CListView的派生类的OnInitialUpdate() 中添加代码对列表进行设置,例如下面代码:CListCtrl &CList=GetListCtrl(); //改变字体大小 m_font.CreateFont(15, 0, 0, 0,FW_SEMIBOLD, 0, 0, 0, GB2312_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, "宋体"); CList.SetFont(&m_font); CList.ModifyStyle(0,LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SINGLESEL); CList.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE,0,LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); CImageList m_ImageList;// m_ImageList.Create(IDB_HeightInfo,1,1,RGB(0,0,0)); GetListCtrl().SetImageList(&m_ImageList,LVSIL_STATE); //下面可以设置列名之类的 上面不是说了吗View的基类选择CListView不就行了,或者基类选CFormView也行,和对话框用法一样。 用CFormView,然后上面放一个ListCtrl控件,这样就类似你们对话框上用列表控件一样的了 用CFormView,比较方便,这样你代码修改不大 我这里有个代码和讲解说明楼主参考下相信对你有用http://www.cnitblog.com/buf/archive/2008/04/12/42270.html 用CListView,直接在View中使用GetListCtrl()就能过的列表的指针,非常方便 这个我做过,我觉得吧,用 ListView 不一定就是最优的方案,视具体情况而定。比如,我完全可以使用 CView,然后动态创建 ListCtrl 来填充整个视图,这在 VS2008 sp1 或者 BCG 中很有用。因为默认的 ListView 相当于个 CListCtrl,而我自己创建的,我可以使用 CMFCListCtrl(支持更多扩展功能)。给你个我以前写的例子://.h file protected: CMFCListCtrl m_wndTaskScheduleList;//.cpp fileint CXXXView::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: 在此添加您专用的创建代码 // 创建任务栏列表 CRect rcDummyRect(0, 0, 0, 0); if (!m_wndTaskScheduleList.GetSafeHwnd()) { m_wndTaskScheduleList.Create(WS_CHILD | WS_VISIBLE | LVS_REPORT, rcDummyRect, this, IDC_TASK_SCHEDULE_LIST); } //...其他代码}void CXXXView::OnSize(UINT nType, int cx, int cy){ CView::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码 m_wndTaskScheduleList.MoveWindow(0, 0, cx, cy);}这样就 OK 了。完全满足你的要求。 就是你说的这个意思 但是我不怎么懂创建CListCtrl,我做的是对话框的 看你上面的回复和这个意思不一样啊?你问说视图,那视图肯定不是基于对话框的啊!如果是对话框,你直接放个 CListCtrl 到对话框上,再手动在 .h 文件中改成你自己的类名就是了 [code=INIFile]如果用CListView,View中使用GetListCtrl()即可得到LIstCtrl的指针;或者用CFormView,就如同用DialogBox一样坚持用CView,定义一个CListCtrl对象,进行Create,风格中要有WS_VISIBLE和WS_CHILD。[/code] VC如何实现进行一个操作后自动搜索USB设备并将一个文件拷入其中? 如何实现在线观看? 如何将class封装成dll? 为什么sendmessage有时候响应不到消息? recv 这api函数为什么返回有错呢? -119-大家进来聊聊关于汉字转换成拼音的思路!! 怎样使用动态链接库???? 一个很紧急的问题:如何在一个自己程序中用程序来关闭模态消息对话框(500分,不够在加),详情见贴子 VC++6.0与数据库 MFC编写的串口通信程序出现乱码 录制屏幕技术讨论 evc gis
m_font.CreateFont(15, 0, 0, 0,FW_SEMIBOLD, 0, 0, 0,
GB2312_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
DEFAULT_PITCH | FF_SWISS, "宋体");
CList.SetFont(&m_font); CList.ModifyStyle(0,LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SINGLESEL);
CList.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE,0,LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
CImageList m_ImageList;//
m_ImageList.Create(IDB_HeightInfo,1,1,RGB(0,0,0));
GetListCtrl().SetImageList(&m_ImageList,LVSIL_STATE); //下面可以设置列名之类的
我这里有个代码和讲解说明
楼主参考下
相信对你有用
http://www.cnitblog.com/buf/archive/2008/04/12/42270.html
比如,我完全可以使用 CView,然后动态创建 ListCtrl 来填充整个视图,
这在 VS2008 sp1 或者 BCG 中很有用。
因为默认的 ListView 相当于个 CListCtrl,而我自己创建的,我可以使用 CMFCListCtrl(支持更多扩展功能)。给你个我以前写的例子://.h file
protected:
CMFCListCtrl m_wndTaskScheduleList;//.cpp file
int CXXXView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1; // TODO: 在此添加您专用的创建代码 // 创建任务栏列表
CRect rcDummyRect(0, 0, 0, 0);
if (!m_wndTaskScheduleList.GetSafeHwnd())
{
m_wndTaskScheduleList.Create(WS_CHILD | WS_VISIBLE | LVS_REPORT, rcDummyRect, this, IDC_TASK_SCHEDULE_LIST);
} //...其他代码
}void CXXXView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码
m_wndTaskScheduleList.MoveWindow(0, 0, cx, cy);
}
这样就 OK 了。完全满足你的要求。
看你上面的回复和这个意思不一样啊?
你问说视图,那视图肯定不是基于对话框的啊!如果是对话框,你直接放个 CListCtrl 到对话框上,再手动在 .h 文件中改成你自己的类名就是了
如果用CListView,View中使用GetListCtrl()即可得到LIstCtrl的指针;
或者用CFormView,就如同用DialogBox一样
坚持用CView,定义一个CListCtrl对象,进行Create,风格中要有WS_VISIBLE和WS_CHILD。
[/code]