vs2010 基于多文档的mfc,添加clistctrl变量的问题?

shiter
人工智能领域优质创作者
博客专家认证
2014-08-11 11:57:51
我想在mainfrm里面关联,我在formviem上画的一个clistctrl表格空间的变量


想让clistctrl控件实现一下网格线的效果,又在mainfrm的oncreat()函数里面添加了代码,但是运行到那个地方就出错了。

求指导

给他添加了函数,变量什么的都加了


public:
CListCtrl m_listctrl;
};

void CMainFrame::DoDataExchange(CDataExchange* pDX)
{
// TODO: 在此添加专用代码和/或调用基类

CMDIFrameWndEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, m_listctrl);
}

m_listctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);

...全文
277 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
piplu 2015-08-22
  • 打赏
  • 举报
回复
引用 17 楼 wangyaninglm 的回复:
[quote=引用 14 楼 mlqxj35674 的回复:] [quote=引用 13 楼 wangyaninglm 的回复:] [quote=引用 11 楼 mlqxj35674 的回复:] 添加项,子项就能看到效果了,在报表风格中
请问下,vs2010是在那里,能给截个图看下不[/quote] 没有图,只有代码 一、设置listctrl 风格及扩展风格 LONG lStyle; lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口style lStyle &= ~LVS_TYPEMASK; //清除显示方式位 lStyle |= LVS_REPORT; //设置style SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//设置style DWORD dwStyle = m_list.GetExtendedStyle(); dwStyle |= LVS_EX_FULLROWSELECT; dwStyle |= LVS_EX_GRIDLINES;//网格线 m_list.SetExtendedStyle(dwStyle); 二、插入数据 m_list.InsertColumn( 0, "姓名", LVCFMT_LEFT, 40 );//插入列 m_list.InsertColumn( 1, "部门", LVCFMT_LEFT, 50 ); int nRow = m_list.InsertItem(0, “”);//插入行 m_list.SetItemText(nRow, 0, “张三”);//设置数据,第1列 m_list.SetItemText(nRow, 1, “软件部”);//设置数据,第2列[/quote] 好了,非常感谢[/quote] 楼主真的OK了吗? 这段设置listctrl风格的代码大家都说放在OnInitialUpdate函数里头,可是在程序运行完毕后,OnInitialUpdate函数根本就没有没调用过呢,楼主在4楼好像也提到这个问题。 这会儿怎么又好了呢。 另外,我的问题跟你一楼提出来的问题是一样的,我调用任何m_list的方法时,程序都会报错。 请问楼主后面怎么解决的,谢谢!
uldm1027 2014-08-14
  • 打赏
  • 举报
回复
都没create,怎么显示啊
shiter 2014-08-13
  • 打赏
  • 举报
回复
引用 11 楼 mlqxj35674 的回复:
添加项,子项就能看到效果了,在报表风格中
请问下,vs2010是在那里,能给截个图看下不
zhuyf87 2014-08-13
  • 打赏
  • 举报
回复
m_listctrl.SetExtendedStyle放在OnInitUpdate()里面,OnInitUpdate()是界面这些元素都创建完成之后调用的第一个函数。 网格线那种是CListCtrl的一个显示风格,可以在资源管理器里面直接设置View属性。 也可以通过代码SetWindowLong设置LVS_REPORT风格。
mlqxj35674 2014-08-13
  • 打赏
  • 举报
回复
添加项,子项就能看到效果了,在报表风格中
lx624909677 2014-08-13
  • 打赏
  • 举报
回复
引用 9 楼 wangyaninglm 的回复:
[quote=引用 7 楼 lx624909677 的回复:] 设置以下风格设置成Report的就可以 [quote=引用 6 楼 wangyaninglm 的回复:] [quote=引用 5 楼 VisualEleven 的回复:] 你的是ListCtrl是Report风格吗?
这个是我托的控件,我也 没看见有属性是说这个的啊。。。 请问代码应该怎么改? 求指导[/quote][/quote]
引用 8 楼 mlqxj35674 的回复:
设置为report风格 而且添加项,列,才能看到效果
在那里设置呢没有找到。。。[/quote] http://blog.csdn.net/lovton/article/details/6527208
shiter 2014-08-13
  • 打赏
  • 举报
回复
引用 14 楼 mlqxj35674 的回复:
[quote=引用 13 楼 wangyaninglm 的回复:] [quote=引用 11 楼 mlqxj35674 的回复:] 添加项,子项就能看到效果了,在报表风格中
请问下,vs2010是在那里,能给截个图看下不[/quote] 没有图,只有代码 一、设置listctrl 风格及扩展风格 LONG lStyle; lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口style lStyle &= ~LVS_TYPEMASK; //清除显示方式位 lStyle |= LVS_REPORT; //设置style SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//设置style DWORD dwStyle = m_list.GetExtendedStyle(); dwStyle |= LVS_EX_FULLROWSELECT; dwStyle |= LVS_EX_GRIDLINES;//网格线 m_list.SetExtendedStyle(dwStyle); 二、插入数据 m_list.InsertColumn( 0, "姓名", LVCFMT_LEFT, 40 );//插入列 m_list.InsertColumn( 1, "部门", LVCFMT_LEFT, 50 ); int nRow = m_list.InsertItem(0, “”);//插入行 m_list.SetItemText(nRow, 0, “张三”);//设置数据,第1列 m_list.SetItemText(nRow, 1, “软件部”);//设置数据,第2列[/quote] 好了,非常感谢
mlqxj35674 2014-08-13
  • 打赏
  • 举报
回复
引用 15 楼 wangyaninglm 的回复:
[quote=引用 14 楼 mlqxj35674 的回复:] [quote=引用 13 楼 wangyaninglm 的回复:] [quote=引用 11 楼 mlqxj35674 的回复:] 添加项,子项就能看到效果了,在报表风格中
请问下,vs2010是在那里,能给截个图看下不[/quote] 没有图,只有代码 一、设置listctrl 风格及扩展风格 LONG lStyle; lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口style lStyle &= ~LVS_TYPEMASK; //清除显示方式位 lStyle |= LVS_REPORT; //设置style SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//设置style DWORD dwStyle = m_list.GetExtendedStyle(); dwStyle |= LVS_EX_FULLROWSELECT; dwStyle |= LVS_EX_GRIDLINES;//网格线 m_list.SetExtendedStyle(dwStyle); 二、插入数据 m_list.InsertColumn( 0, "姓名", LVCFMT_LEFT, 40 );//插入列 m_list.InsertColumn( 1, "部门", LVCFMT_LEFT, 50 ); int nRow = m_list.InsertItem(0, “”);//插入行 m_list.SetItemText(nRow, 0, “张三”);//设置数据,第1列 m_list.SetItemText(nRow, 1, “软件部”);//设置数据,第2列[/quote] 这些代码应该添加在那里?[/quote]加到OnInitialUpdate()中
shiter 2014-08-13
  • 打赏
  • 举报
回复
引用 14 楼 mlqxj35674 的回复:
[quote=引用 13 楼 wangyaninglm 的回复:] [quote=引用 11 楼 mlqxj35674 的回复:] 添加项,子项就能看到效果了,在报表风格中
请问下,vs2010是在那里,能给截个图看下不[/quote] 没有图,只有代码 一、设置listctrl 风格及扩展风格 LONG lStyle; lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口style lStyle &= ~LVS_TYPEMASK; //清除显示方式位 lStyle |= LVS_REPORT; //设置style SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//设置style DWORD dwStyle = m_list.GetExtendedStyle(); dwStyle |= LVS_EX_FULLROWSELECT; dwStyle |= LVS_EX_GRIDLINES;//网格线 m_list.SetExtendedStyle(dwStyle); 二、插入数据 m_list.InsertColumn( 0, "姓名", LVCFMT_LEFT, 40 );//插入列 m_list.InsertColumn( 1, "部门", LVCFMT_LEFT, 50 ); int nRow = m_list.InsertItem(0, “”);//插入行 m_list.SetItemText(nRow, 0, “张三”);//设置数据,第1列 m_list.SetItemText(nRow, 1, “软件部”);//设置数据,第2列[/quote] 这些代码应该添加在那里?
mlqxj35674 2014-08-13
  • 打赏
  • 举报
回复
引用 13 楼 wangyaninglm 的回复:
[quote=引用 11 楼 mlqxj35674 的回复:] 添加项,子项就能看到效果了,在报表风格中
请问下,vs2010是在那里,能给截个图看下不[/quote] 没有图,只有代码 一、设置listctrl 风格及扩展风格 LONG lStyle; lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口style lStyle &= ~LVS_TYPEMASK; //清除显示方式位 lStyle |= LVS_REPORT; //设置style SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//设置style DWORD dwStyle = m_list.GetExtendedStyle(); dwStyle |= LVS_EX_FULLROWSELECT; dwStyle |= LVS_EX_GRIDLINES;//网格线 m_list.SetExtendedStyle(dwStyle); 二、插入数据 m_list.InsertColumn( 0, "姓名", LVCFMT_LEFT, 40 );//插入列 m_list.InsertColumn( 1, "部门", LVCFMT_LEFT, 50 ); int nRow = m_list.InsertItem(0, “”);//插入行 m_list.SetItemText(nRow, 0, “张三”);//设置数据,第1列 m_list.SetItemText(nRow, 1, “软件部”);//设置数据,第2列
shiter 2014-08-12
  • 打赏
  • 举报
回复
引用 2 楼 mlqxj35674 的回复:
OnCreate里控件还没有被创建出来。 m_listctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);这一句加到OnInitialUpdate()中
void Cmdi_matlab_movewindow20140810View::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	ResizeParentToFit();

	m_listctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP); 

}
怎么没有反映啊。。。。
RaphaeL_yb 2014-08-12
  • 打赏
  • 举报
回复
你调试的时候到断点按F11跳到函数体看看Assert里边判断的是什么。
mlqxj35674 2014-08-12
  • 打赏
  • 举报
回复
OnCreate里控件还没有被创建出来。 m_listctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);这一句加到OnInitialUpdate()中
shiter 2014-08-12
  • 打赏
  • 举报
回复
引用 7 楼 lx624909677 的回复:
设置以下风格设置成Report的就可以 [quote=引用 6 楼 wangyaninglm 的回复:] [quote=引用 5 楼 VisualEleven 的回复:] 你的是ListCtrl是Report风格吗?
这个是我托的控件,我也 没看见有属性是说这个的啊。。。 请问代码应该怎么改? 求指导[/quote][/quote]
引用 8 楼 mlqxj35674 的回复:
设置为report风格 而且添加项,列,才能看到效果
在那里设置呢没有找到。。。
mlqxj35674 2014-08-12
  • 打赏
  • 举报
回复
设置为report风格 而且添加项,列,才能看到效果
lx624909677 2014-08-12
  • 打赏
  • 举报
回复
设置以下风格设置成Report的就可以
引用 6 楼 wangyaninglm 的回复:
[quote=引用 5 楼 VisualEleven 的回复:] 你的是ListCtrl是Report风格吗?
这个是我托的控件,我也 没看见有属性是说这个的啊。。。 请问代码应该怎么改? 求指导[/quote]
shiter 2014-08-12
  • 打赏
  • 举报
回复
引用 5 楼 VisualEleven 的回复:
你的是ListCtrl是Report风格吗?
这个是我托的控件,我也 没看见有属性是说这个的啊。。。 请问代码应该怎么改? 求指导
Eleven 2014-08-12
  • 打赏
  • 举报
回复
你的是ListCtrl是Report风格吗?
shiter 2014-08-11
  • 打赏
  • 举报
回复

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧