背景:ctrollist设置report风格,插入列表头,再插入每一行内容。现象:编译不报错,但执行时,执行到“插入行内容”就触发中断。相关代码:
//信息列表初始化设置
m_ctrlList.SetBkColor(RGB(160,180,220)); //设置列表框背景颜色,但不覆盖有文件部分
m_ctrlList.SetTextBkColor(RGB(160,180,220));//把文本部分背景设置成列表框背景颜色 //设置背景文字颜色
m_ctrlList.SetTextColor(RGB(200,85,125));
DWORD dwStyle=::GetWindowLong(m_ctrlList.m_hWnd,GWL_STYLE); //设置为报表形式
SetWindowLong(m_ctrlList.m_hWnd,GWL_STYLE,dwStyle|LVS_REPORT);
DWORD ExStyle =m_ctrlList.GetExtendedStyle(); //设置为整栏选择和网格线
m_ctrlList.SetExtendedStyle(ExStyle|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); //初始化列表控件标题栏
m_ctrlList.InsertColumn(0,_T("编号"),LVCFMT_LEFT,65);
m_ctrlList.InsertColumn(1,_T("代号"),LVCFMT_LEFT,80); //m_ctrlList.InsertItem( 0, _T("88") );
m_ctrlList.SetItemText (0, 1, _T("123"));断点跟踪时,上面这句出的错,错误指向:文件 winctrl2.cpp
BOOL CListCtrl::SetItemText(int nItem, int nSubItem, LPCTSTR lpszText)
{
ASSERT(::IsWindow(m_hWnd));
ASSERT((GetStyle() & LVS_OWNERDATA)==0); LVITEM lvi; (指向这行)
lvi.iSubItem = nSubItem;
lvi.pszText = (LPTSTR) lpszText;
return (BOOL) ::SendMessage(m_hWnd, LVM_SETITEMTEXT, nItem, (LPARAM)&lvi);
}
到底是怎么回事呢,麻烦大家帮忙看看,O(∩_∩)O谢谢
//信息列表初始化设置
m_ctrlList.SetBkColor(RGB(160,180,220)); //设置列表框背景颜色,但不覆盖有文件部分
m_ctrlList.SetTextBkColor(RGB(160,180,220));//把文本部分背景设置成列表框背景颜色 //设置背景文字颜色
m_ctrlList.SetTextColor(RGB(200,85,125));
DWORD dwStyle=::GetWindowLong(m_ctrlList.m_hWnd,GWL_STYLE); //设置为报表形式
SetWindowLong(m_ctrlList.m_hWnd,GWL_STYLE,dwStyle|LVS_REPORT);
DWORD ExStyle =m_ctrlList.GetExtendedStyle(); //设置为整栏选择和网格线
m_ctrlList.SetExtendedStyle(ExStyle|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); //初始化列表控件标题栏
m_ctrlList.InsertColumn(0,_T("编号"),LVCFMT_LEFT,65);
m_ctrlList.InsertColumn(1,_T("代号"),LVCFMT_LEFT,80); //m_ctrlList.InsertItem( 0, _T("88") );
m_ctrlList.SetItemText (0, 1, _T("123"));断点跟踪时,上面这句出的错,错误指向:文件 winctrl2.cpp
BOOL CListCtrl::SetItemText(int nItem, int nSubItem, LPCTSTR lpszText)
{
ASSERT(::IsWindow(m_hWnd));
ASSERT((GetStyle() & LVS_OWNERDATA)==0); LVITEM lvi; (指向这行)
lvi.iSubItem = nSubItem;
lvi.pszText = (LPTSTR) lpszText;
return (BOOL) ::SendMessage(m_hWnd, LVM_SETITEMTEXT, nItem, (LPARAM)&lvi);
}
到底是怎么回事呢,麻烦大家帮忙看看,O(∩_∩)O谢谢
解决方案 »
- 圆角矩形窗口的一个小问题
- 如何注册一个com组件啊,除了用regsvr32想编程实现,自己在网上超了一个,在单位的2003服务器上不能用,郁闷
- 怎样在一个Dialog类中使用CMySet(数据表)类
- 位图加载求助!!
- ListBox排序的一个问题
- 如何枚举一个局域网中的SQL server 服务器
- 有谁碰到过这样的问题?
- VS2012编译的dll在win7下能调用,而XP下报错
- MFC 模态对话框Domodal后被别的窗口遮挡住了,得按一下Alt键才能够前端显示?
- Windows下,怎么修改程序在桌面和启动栏的快捷方式的名字?
- 【分享】MFC编写微信PC客户端,我封装了一个CWeixin类
- VC中点击非模态对话框不能使整个窗口覆盖其它窗口
m_ctrlList.SetItemText (0, 1, _T("123"));红的一定要,即先要插入一行。