谈谈CListCtrl 扩展风格设置方法-SetExtendedStyle和ModifyStyleEx 比较[通俗易懂]

谈谈CListCtrl 扩展风格设置方法-SetExtendedStyle和ModifyStyleEx 比较[通俗易懂]谈谈CListCtrl扩展风格设置方法————————————–SetExtendedStyle和ModifyStyleEx比较 对于初学者来说,当他需要设定listctrl的扩展风格时,常常想到用ModifyStyleEx来设定,代码如下:ModifyStyleEx(0,LVS_EX_GRIDLINES)这是不正确的,正

大家好,又见面了,我是你们的朋友全栈君。

谈谈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 的扩展风格,微软只能把它放在其他地方了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161690.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • javaMD5加密工具类

    javaMD5加密工具类importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;/***CreatedbyZhou.xyon2016/12/27.*/publicclassEncryMD5{/***String->MD5*/publi

    2022年7月15日
    18
  • idea最新永久激活码2022【中文破解版】2022.02.02

    (idea最新永久激活码2022)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/ide…

    2022年3月31日
    90
  • pycharm怎么配置tensorflow环境_linux系统物理机安装步骤

    pycharm怎么配置tensorflow环境_linux系统物理机安装步骤Tensorflow详细安装步骤及PyCharm配置Tensorflow是谷歌开源的深度学习框架,分为两个版本,GPU和CPU,主要的区别在于计算速度,GPU版本要比CPU计算速度更快,适用于处理大量复杂的数据,但需要计算机配置独立NVIDIA显卡。CPU版本没有显卡要求,安装更简单,合适新手小白和学生党,下面介绍CPU版本Tensorflow的详细安装步骤系统环境:Windows10第一步:安装Anaconda两种方式:直接在Anaconda官方网站下载,但速度很慢;建议第二种,选择镜像网站下载,

    2022年8月28日
    7
  • pycharm 2021.11 激活码-激活码分享

    (pycharm 2021.11 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html4M…

    2022年3月29日
    155
  • Spring加载resource时classpath*:与classpath:的区别

    Spring加载resource时classpath*:与classpath:的区别Spring 可以通过指定 classpath 与 classpath 前缀加路径的方式从 classpath 加载文件 如 bean 的定义文件 classpath 的出现是为了从多个 jar 文件中加载相同的文件 classpath 只能加载找到的第一个文件 比如 resource1 jar 中的 package com test rs 有一个 jarAppcontex xml 文件 内容如下

    2025年5月21日
    9
  • Navicat_Premium激活码【2021最新】

    (Navicat_Premium激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1S…

    2022年3月27日
    368

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号