我有一个基于对话框的程序,利用ado操作数据库,并在GridCtrl中显示出来.
//在OnInitDialog()中初始化GridCtrl
CString fields[]={"料号","料品名称","料品规格","供应形态","仓库代号","现存量","预约量"};
m_grid.SetColumnCount(7);
m_grid.SetFixedRowCount(1);
m_grid.SetRowResize(FALSE);
//m_grid.SetRowCount(20);
//设置标题栏的字段值
for( i=0; i<7; i++ )
{
GV_ITEM Item;
Item.mask = GVIF_TEXT|GVIF_FORMAT;
Item.row = 0;
Item.col = i;
Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS;
Item.szText.Format(_T("%s"),fields[i]);
m_grid.SetItem(&Item);
}
..........数据库连接成功,并且能够显示正确的结果来,但是当我的鼠标移到第一行或是有数据显示的行时,就会发生异常中断,显示ASSERT错误.
不能通过ASSERT地方为CTitleTip.cpp的show(,,,)中的
ASSERT( ::IsWindow( GetSafeHwnd() ) );
请问原因出在何处?
//在OnInitDialog()中初始化GridCtrl
CString fields[]={"料号","料品名称","料品规格","供应形态","仓库代号","现存量","预约量"};
m_grid.SetColumnCount(7);
m_grid.SetFixedRowCount(1);
m_grid.SetRowResize(FALSE);
//m_grid.SetRowCount(20);
//设置标题栏的字段值
for( i=0; i<7; i++ )
{
GV_ITEM Item;
Item.mask = GVIF_TEXT|GVIF_FORMAT;
Item.row = 0;
Item.col = i;
Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS;
Item.szText.Format(_T("%s"),fields[i]);
m_grid.SetItem(&Item);
}
..........数据库连接成功,并且能够显示正确的结果来,但是当我的鼠标移到第一行或是有数据显示的行时,就会发生异常中断,显示ASSERT错误.
不能通过ASSERT地方为CTitleTip.cpp的show(,,,)中的
ASSERT( ::IsWindow( GetSafeHwnd() ) );
请问原因出在何处?
甚至使用VirturalList模式
可能你的其他地方设置有误1
是不是在初始化的时候有问题?
有一点不同的是我
DDX_Control(pDX,IDC_GRID,m_grid);是放在
//{{AFX_DATA_MAP(CMyDlg)
//}}AFX_DATA_MAP
之外,
出现这样的问题可能是内存泄漏导致的,可是我并没有用到指针呀.
我的email:[email protected]
GridCtrl连接起来?因为我不需要拖动、选中改变颜色等功能,如果没有好的方法,那不
与CListCtrl一样了?