VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 441|回复: 1

[交流] SetExtendedStyle和ModifyStyleEx的区别

[复制链接]
51_avatar_middle
online_admins 发表于 2018-10-30 16:11:15 | 显示全部楼层 |阅读模式

想把ListCtr设置为整行高亮显示并且带网格线,需要设置其扩展样式:LVS_EX_FULLROWSELECT 和 LVS_EX_GRIDLINES

错误的方法为:
m_list.ModifyStyleEx(0, LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

正确的方法为:
DWORD dwStyle = m_list.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES;
m_list.SetExtendedStyle(dwStyle);

那么,ModifyStyleEx 和 SetExtendedStyle 的区别是什么呢?
实际上,ModifyStyleEx 只是对窗口的 GWL_EXSTYLE 属性作设定,也即只是对窗口的扩展属性作设定,这种属性以 WS_EX_ 作为前缀,比如WS_EX_CLIENTEDGE

而在 ListCtrl 控件中,它的扩展风格的值并没有存入窗口的 GWL_EXSTYLE 属性值中,而是通过发送 LVM_SETEXTENDLISTVIEWSTYLE 消息给 ListCtrl
控件来实现,因此它就不能通过 ModifyStyleEx 做设定,只能通过 SetExtendedStyle 进行设定,大家明白了吗?




上一篇:XSS
下一篇:DirectX9.0+3D游戏开发编程基础源码
77_avatar_middle
在线会员 发表于 2018-12-17 22:21:36 | 显示全部楼层
thanks                                    
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-5-22 16:07

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表