首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MFC虚拟列表控件行高更改

MFC虚拟列表控件行高更改
EN

Stack Overflow用户
提问于 2022-11-28 06:46:52
回答 1查看 39关注 0票数 0

我想更改listCtrl行高

更改行高使用OnMeasureItem,数据插入使用OnGetdispinfoListCtrl

代码语言:javascript
复制
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错误

代码语言:javascript
复制
void CListCtrl::DrawItem(LPDRAWITEMSTRUCT)
{
ASSERT(FALSE);
}

是那个错误

我知道这个问题在drawItem里

但我不知道解决办法

谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-11-28 07:52:18

对于LBS_NODATA列表框,您负责通过处理WM_DRAWITEM消息绘制项目。

为此,您需要在DrawItem类中为CListCtrl-derived类提供一个实现,如文档中所解释的那样:

默认情况下,此成员函数不执行任何操作。重写此成员函数以实现所有者绘制CListCtrl对象的绘图。

基类实现CListCtrl::DrawItem在调试断言中失败,因此丢失的实现不会容易被忽略。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74596927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档