我想更改listCtrl行高
更改行高使用OnMeasureItem,数据插入使用OnGetdispinfoListCtrl
void ShipInfoDlg::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
if(nIDCtl == IDC_LISTCTRL)
{
LOGFONT lf;
GetDlgItem(IDC_LISTCTRL)->GetFont()->GetLogFont( &lf );
if( lf.lfHeight < 0 )
lpMeasureItemStruct->itemHeight = -lf.lfHeight + 10;
else
lpMeasureItemStruct->itemHeight = lf.lfHeight + 10;
}
else CDialog::OnMeasureItem(nIDCtl, lpMeasureItemStruct);}
启动此代码,winctrl2.cpp行:593错误
void CListCtrl::DrawItem(LPDRAWITEMSTRUCT)
{
ASSERT(FALSE);
}是那个错误
我知道这个问题在drawItem里
但我不知道解决办法
谢谢
发布于 2022-11-28 07:52:18
对于LBS_NODATA列表框,您负责通过处理WM_DRAWITEM消息绘制项目。
为此,您需要在DrawItem类中为CListCtrl-derived类提供一个实现,如文档中所解释的那样:
默认情况下,此成员函数不执行任何操作。重写此成员函数以实现所有者绘制CListCtrl对象的绘图。
基类实现CListCtrl::DrawItem在调试断言中失败,因此丢失的实现不会容易被忽略。
https://stackoverflow.com/questions/74596927
复制相似问题