谈谈CListCtrl 扩展风格设置方法

--------------------------------------SetExtendedStyle和ModifyStyleEx 比較

对于刚開始学习的人来说,当他须要设定listctrl的扩展风格时,经常想到用ModifyStyleEx 来设定,代码例如以下:

ModifyStyleEx(0,LVS_EX_GRIDLINES)

这是不对的,正确的设定应该是:

SetExtendedStyle(LVS_EX_GRIDLINES)

那么,ModifyStyleEx和SetExtendedStyle差别在哪里?

实际上,ModifyStyleEx仅仅是对窗体的GWL_EXSTYLE属性作设定,也即仅仅是对窗体的常规扩展属性作设定,这样的属性以WS_EX_作为前缀,比方WS_EX_CLIENTEDGE,

在listctrl 控件中,它的扩展风格的值并没有存入窗体的GWL_EXSTYLE属性值中,而是通过发送LVM_SETEXTENDLISTVIEWSTYLE消息给listctrl控件来实现,因此它就不能通过ModifyStyleEx做设定。

比較起ModifyStyle,该API就可以设定普通窗体的风格,比方WS_CHILD,WS_VISIBLE。也可.设定控件的普通风格,对listctrl,就有LVS_REPORT,LVS_OWNERDRAWFIXED等等,这就是为什么在创建子控件时我们能够把WS_CHILD,WS_VISIBLE结合在一起传递的控件的create函数的原因:

m_list.Create(WS_CHILD|WS_VISIBLE|LVS_REPORT,CRect(0,0,100,100),this,0);

但对于扩展风格却不能这么做:

m_list.CreateEx(WS_EX_CLIENTEDGE|LVS_EX_GRIDLINES,"LISTCTRL","",WS_CHILD|WS_VISIBLE,CRect(0,0,100,100),this,0);

为什么微软没有把控件的扩展风格储存在GWL_EXSTYLE属性中,由于这个属性值为32位长的DWORD型,窗体的常规扩展属性即以WS_EX_作为前缀的属性,已经把它占完了,所以对listctrl 的扩展风格,微软仅仅能把它放在其它地方了。

谈谈CListCtrl 扩展风格设置方法-SetExtendedStyle和ModifyStyleEx 比較的更多相关文章

  1. CListCtrl控件使用方法总结

    今天第一次用CListCtrl控件,遇到不少问题,查了许多资料,现将用到的一些东西总结如下: 以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtr ...

  2. 【VS开发】CListCtrl控件使用方法总结

    CListCtrl控件使用方法总结 今天第一次用CListCtrl控件,遇到不少问题,查了许多资料,现将用到的一些东西总结如下: 以下未经说明,listctrl默认view 风格为report 相关类 ...

  3. IIS下不能下载文件的docx文档,XLSX文档的设置方法(转)

    IIS下不能下载文件的docx文档,XLSX文档的设置方法 Office 2007的的界面风格默认格式中都是.DOCX,XLSX,PPTX等等后缀,连结中包含此类文件时,界面风格默认什么打不开的其实只 ...

  4. 给NSString增加Java风格的方法

    给NSString增加Java风格的方法 文章目录 我实在受不了 NSString 冗长的方法调用了,每次写之前都要查文档.特别是那个去掉前后多余的空格的方法,长得离谱.与之对应的别的语言,拿 jav ...

  5. Apache日志不记录图片文件设置方法和来源日志的配置

    Apache日志不记录图片文件设置方法 <FilesMatch "\.(ico|gif|jpg|swf)">SetEnv IMAG 1</FilesMatch&g ...

  6. win8 iis7/iis8 安装、卸载、设置方法

    原文:win8 iis7/iis8 安装.卸载.设置方法 一.安装 自从升级到Win8之后,之前使用已经趋于熟悉的iis7.0被取而代之的是iis8.0,那么安装和获取方法也就产生的略微的变化,为了避 ...

  7. Eclipse字体颜色的设置方法

    Eclipse字体颜色的设置方法.. ----------------- .---------------------此时我们就希望设置一下字体eclipse字体颜色,让他像其它编辑器一样的,有不同的 ...

  8. Core文件简单介绍及生成设置方法

    Core文件简单介绍及生成设置方法 Core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试.当程序崩溃时便会产生core文件,其实准确的应该说是core dump 文 ...

  9. Kotlin(2): 优雅地扩展类的方法和属性

    欢迎Follow我的GitHub, 关注我的CSDN. 个人博客: http://www.wangchenlong.org/, 最新内容. Kotlin由JetBrains公司推出, 是兼容Java的 ...

随机推荐

  1. python安装依赖

    yum install zlib zlib-devel openssl openssl-devel bzip2 bzip2-devel ncurses ncurses-devel readline r ...

  2. (ZT)LoadRunner9.0成功破解方法

    LoadRunner9.0软件下载地址: http://www.3atesting.com/filedown/LR9Download.exe 破解所需文件 http://download.csdn.n ...

  3. POJ 2826 An Easy Problem?! 好的标题

    受该两块木板以形成槽的效果.Q槽可容纳雨水多,注意雨爆跌,思想是非常easy,分类讨论是有点差. 1.假定两条线段不相交或平行,然后再装0: 2.有一个平行x轴.连衣裙0. 3.若上面覆盖以下的,装0 ...

  4. 10324 - Zeros and Ones

    Problem N Zeros and Ones Input: standard input Output: standard output Time Limit: 2 seconds Memory ...

  5. 【Java】运用JDBC实现一个注册、登录系统的编写

    数据库的建立 首先,建立一个数据库,存储注册成功的账户信息. 其SQL的DDL语句如下: CREATE TABLE `jdbctest` ( `id` int(10) NOT NULL auto_in ...

  6. XML,Object,Json分析转换Xstream采用

    XML,Object,Json转换之浅析Xstream的使用 请尊重他人的劳动成果,转载请注明出处:XML,Object,Json转换之浅析Xstream的使用 XStream的是一个简单的库.主要用 ...

  7. 一些周期性GC的理由为何

    1.供tomcat:防止内存泄漏监听器 JreMemoryLeakPreventionListener在上班,每隔一小时默认触发一次System.gc Class clazz = Class.forN ...

  8. python面向对象的继承

    无话可说,继承主要是一些父类继承,代码是非常具体的 #!/usr/bin/env python #coding:utf-8 class Father(object):#新式类 def __init__ ...

  9. UILabel iOS添加文本控件

    UILabel这是iOS控制,这是UIView子类,只有在UIView文字显示功能的基础上加入.UILabel还查看课程和UIView类别似     //1.创建一个视图对象     //2.配置视图 ...

  10. python手记(52)

    python将信息加密进图片 从图片中解密信息 >>> runfile(r'K:\testpro\test1.py', wdir=r'K:\testpro') http://blog ...