谈谈CListCtrl 扩展风格设置方法-SetExtendedStyle和ModifyStyleEx 比較
谈谈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 比較的更多相关文章
- CListCtrl控件使用方法总结
今天第一次用CListCtrl控件,遇到不少问题,查了许多资料,现将用到的一些东西总结如下: 以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtr ...
- 【VS开发】CListCtrl控件使用方法总结
CListCtrl控件使用方法总结 今天第一次用CListCtrl控件,遇到不少问题,查了许多资料,现将用到的一些东西总结如下: 以下未经说明,listctrl默认view 风格为report 相关类 ...
- IIS下不能下载文件的docx文档,XLSX文档的设置方法(转)
IIS下不能下载文件的docx文档,XLSX文档的设置方法 Office 2007的的界面风格默认格式中都是.DOCX,XLSX,PPTX等等后缀,连结中包含此类文件时,界面风格默认什么打不开的其实只 ...
- 给NSString增加Java风格的方法
给NSString增加Java风格的方法 文章目录 我实在受不了 NSString 冗长的方法调用了,每次写之前都要查文档.特别是那个去掉前后多余的空格的方法,长得离谱.与之对应的别的语言,拿 jav ...
- Apache日志不记录图片文件设置方法和来源日志的配置
Apache日志不记录图片文件设置方法 <FilesMatch "\.(ico|gif|jpg|swf)">SetEnv IMAG 1</FilesMatch&g ...
- win8 iis7/iis8 安装、卸载、设置方法
原文:win8 iis7/iis8 安装.卸载.设置方法 一.安装 自从升级到Win8之后,之前使用已经趋于熟悉的iis7.0被取而代之的是iis8.0,那么安装和获取方法也就产生的略微的变化,为了避 ...
- Eclipse字体颜色的设置方法
Eclipse字体颜色的设置方法.. ----------------- .---------------------此时我们就希望设置一下字体eclipse字体颜色,让他像其它编辑器一样的,有不同的 ...
- Core文件简单介绍及生成设置方法
Core文件简单介绍及生成设置方法 Core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试.当程序崩溃时便会产生core文件,其实准确的应该说是core dump 文 ...
- Kotlin(2): 优雅地扩展类的方法和属性
欢迎Follow我的GitHub, 关注我的CSDN. 个人博客: http://www.wangchenlong.org/, 最新内容. Kotlin由JetBrains公司推出, 是兼容Java的 ...
随机推荐
- CentOS上解压ZIP乱码的解决办法
今天在学校做实验需要解压缩一些范例程序,我准备在我的电脑上把这个实验做完,所以就把文件copy到我的CentOS里面去了. 但是万万没想到``````解压缩的时候悲剧了,用unzip解压出来一大堆乱码 ...
- Anyterm - Introduction
Anyterm - Introduction Anyterm
- 设置SVN忽略文件和文件夹(文件夹)
在多数项目中你总会有文件和文件夹不须要进行版本号控制.这可能包含一些由编译器生成的文件,*.obj,*.lst,也许是一个用于存放可运行程序的输出文件夹.仅仅要你提交改动,TortoiseSVN 就会 ...
- Android.mk编译.apk .so .jar .a第三方.apk .so .jar .a的方法
一.编译一个简单的APK LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Build all java files in the java s ...
- [置顶] C++学习书单
关于C++的书太多了,很容易让人没有头绪.一直想整理下,把这些书列个书单出来,直到今天才动手.希望我的经验能给后来的初学者一点帮助. 1.<C++程序设计教程> 钱能 很多学校把这本书选做 ...
- hdu1160(最长上升子序列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160 题意:给定一些小猫的属性:体重和速度.然后求某些猫顺序的排列,使得体重上升,速度下降,这样的排列 ...
- SQL server 2000安装时“以前的某个程序安装已在安装计算机上创建挂起”
客户使用的固定资产盘点软件使用的数据库是MSSQL 2000,在安装完成打上SP3的时候提示“以前的某个程序安装已在安装计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机“,从客户的软件提 ...
- SE 2014年4月14日
一. 概述BGP的特点 BGP协议是一种距离矢量协议,基于TCP的179端口,BGP协议不会动态的学习路由,只能将IGP协议学习到的或者静态路由注入到BGP中,成为BGP路由,BGP路由携带有丰富的路 ...
- 聊聊高并发(三十八)解析java.util.concurrent各个组件(十四) 理解Executor接口的设计
JUC包中除了一系列的同步类之外,就是Executor运行框架相关的类.对于一个运行框架来说,能够分为两部分 1. 任务的提交 2. 任务的运行. 这是一个生产者消费者模式,提交任务的操作是生产者,运 ...
- 由sqlite在手机的内存位置,引起onCreate当运行总结
转载请注明出处.谢谢:http://blog.csdn.net/harryweasley/article/details/46467495 我们都知道,android为了操作数据库,通常是继承SQLi ...