MFC控件 void DrawItem(LPDRAWITEMSTRUCT) { ASSERT(FALSE); }

今天帮一位小朋友写加密工具的时候,突然发现许久不用的MFC特生疏,控件函数都忘干净了,在查的基础上,勉强写了一个工具出来,挺简陋的,接个图给大家笑话下。

写到用ListBox来显示提示信息的时候,发现给Assert,跟进去之后发现是这一句导致的

[cpp]
void CListCtrlBox::DrawItem(LPDRAWITEMSTRUCT)     { ASSERT(FALSE); }
[/cpp]

查了查google,说法很多,很多人都说要自己重载DrawItem函数,不过以前用的时候并没有这样做,所以可以肯定不是这个原因,再查了下,找到了方法,要设置这个ListBox的Owner Drow属性是Fixed,选择这个属性为No再次编译运行,并没有错误了,看来应该是从VS08就有了这个属性,我以前一直用的05所以没感觉到这个,现在换成10就出了这样一个问题,悲剧啊。

    发表评论

    电子邮件地址不会被公开。必填项已用 * 标注