作者:叶肖帆Seantq_693 | 来源:互联网 | 2023-05-19 07:43
VC6.0SDI工程,视图是以CFormView做基类,在主届面上的ListCtrl加上Ownerdrawfixed属性不报错,而其下面的一个子窗口中的ListCtrl控件一加上此属性一打开该子
VC6.0 SDI工程,视图是以CFormView做基类,在主届面上的ListCtrl加上Owner draw fixed属性不报错,而其下面的一个子窗口中的ListCtrl控件一加上此属性一打开该子窗口则报错,报错信息为
Title内容是“Microsoft Visual C++ Failed!
窗口内容是
Debug Assertion Failed?
Program://程序所在的全路径
File:winctrl2.cpp
Line:547
但是改为bulid为release版则不报错,这是为什么?
请高手指教?谢谢!!
10 个解决方案
估计你调用什么虚列表不支持的函数了,例如InsertItem
楼主你是不是只设置了Ownerdraw fixed属性,而没有重载DrawItem() & MeasureItem()?
重载DrawItem() & MeasureItem()之后应可以解决问题。
jiangsheng(蒋晟.MSMVP2004Jan)大侠,什么是虚列表呀?请您老人家请教!
那你就重载DrawItem() & MeasureItem()试试。
初始化时的相关代码
m_ysd.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_ysd.InsertColumn(0,"0列",LVCFMT_CENTER,160,0);
m_ysd.InsertColumn(1,"1列",LVCFMT_LEFT,130,1);
m_ysd.InsertColumn(2,"2列",LVCFMT_CENTER,80,2);
m_ysd.InsertColumn(3,"3列",LVCFMT_CENTER,80,3);
m_ysd.InsertItem(0,"heell");
m_ysd.SetItemText(0,1,"asdf");
m_ysd.SetItemText(0,2,"asdf");
m_ysd.SetItemText(0,3,"asdf");
你既然已经选了ownerdraw,那么你就要重载drawitem()你可以添加以下drawitem这个函数然后试试看。应该可以解决问题。
jiangsheng(蒋晟.MSMVP2004Jan)老大,我不用InsertColumn和InsertItem函数就没事!
谢谢你的指点!