做个小程序,可将图标(ICON)拖入到列表框中然后显示,也就是用到了自制列表框在重写PreCreateWindow的时候
cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~(LBS_OWNERDRAWVARIABLE | LBS_SORT);
cs.style |= LBS_OWNERDRAWFIXED;
最后那一行写成cs.style |= LBS_OWNERDRAWVARIABLE ;
于是当添加图标到列表框的时候不能显示图标的样子了,添加之后只是一条蓝色亮线查了MSDN知道LBS_OWNERDRAWFIXED是使图标高度一样且只发送一次WM_MEASUREITEM,而LBS_OWNERDRAWVARIABLE是使图标高度变化且对每个图标都要发送WM_MEASUREITEM另外,重新MeasureItem时设定了图标的高度lpMeasureItemStruct->itemHeight=36;这是不是说自制列表框已经设定了图标高度,所以选择列表框样式的时候只能选择LBS_OWNERDRAWVARIABLE ,那什么情况下选择LBS_OWNERDRAWVARIABLE呢不大明白这两种区别的意思,和我那种错误(不能显示图标)有什么联系,请详细讲解一下,谢谢
cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~(LBS_OWNERDRAWVARIABLE | LBS_SORT);
cs.style |= LBS_OWNERDRAWFIXED;
最后那一行写成cs.style |= LBS_OWNERDRAWVARIABLE ;
于是当添加图标到列表框的时候不能显示图标的样子了,添加之后只是一条蓝色亮线查了MSDN知道LBS_OWNERDRAWFIXED是使图标高度一样且只发送一次WM_MEASUREITEM,而LBS_OWNERDRAWVARIABLE是使图标高度变化且对每个图标都要发送WM_MEASUREITEM另外,重新MeasureItem时设定了图标的高度lpMeasureItemStruct->itemHeight=36;这是不是说自制列表框已经设定了图标高度,所以选择列表框样式的时候只能选择LBS_OWNERDRAWVARIABLE ,那什么情况下选择LBS_OWNERDRAWVARIABLE呢不大明白这两种区别的意思,和我那种错误(不能显示图标)有什么联系,请详细讲解一下,谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货