也谈VC中ModifyStyle&ModifyStyleEx无法改变控件的Style)

也谈VC中ModifyStyle&ModifyStyleEx无法改变控件的Style)一个View中用到了一个CListCtrl,在OnInitialUpdate函数里面他调用了m_listCtrl.ModifyStyleEx(0,LVS_EX_FULLROWSELECT);但是结果是并没有改变View中这个ListCtrl的效果。     仔细的查阅了MSDN的关于ModifyStyleEx的说明,发现没什么可以的地方,调试几遍发现也没异常,最后在网上一搜索Modif

大家好,又见面了,我是你们的朋友全栈君。一个View中用到了一个CListCtrl,在OnInitialUpdate函数里面他调用了m_listCtrl.ModifyStyleEx(0, LVS_EX_FULLROWSELECT);但是结果是并没有改变View中这个ListCtrl的效果。

 
     仔细的查阅了MSDN的关于ModifyStyleEx的说明,发现没什么可以的地方,调试几遍发现也没异常,最后在网上一搜索ModifyStyleEx,结果发现碰到这个问题的朋友还真不少,有一遍关于ModifyStyle和ModifyStyleEx无法改变样式的解决方法的文章被转载得到处都是,不仅感慨现在的互联网信息重复程度~~结果看完文章很失望,他完全是重新Create了一个控件。
 
     最后经过努力,发现使用
SetExtendStyle函数就可以实现改变Style的功能。
m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP | LVS_EX_MULTIWORKAREAS);

     有一点是可以肯定地,
如果你重构一个控件继承自CListCtrl,那么你可以在该控件的OnCreate中使用ModifyStyle或者ModifyStyleEx,这都是可以达到目的的,但是如果控件的一个实例是另一个窗口的成员变量,那么你在这个窗口的初始化函数中调用该控件的ModifyStyle或者ModifyStyleEx是不能达到目的的,有些关联的一个说明是SetWindowLong会因为控件和调用者不在同一进程而失败(ModifyStyle和ModifyStyleEx函数中有调用SetWindowLong).

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

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

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


相关推荐

  • jenkins自动触发构建_为什么触发器有定时问题

    jenkins自动触发构建_为什么触发器有定时问题前言跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。jenkins的定时任务是用的crontab语法定时构建语法

    2022年7月28日
    18
  • 【Pycharm】Pycharm专业版 社区版 教育版区别「建议收藏」

    【Pycharm】Pycharm专业版 社区版 教育版区别「建议收藏」因为刚接触python,对pythonIDE不够了解,通过各方面的查找对比最终还是选择了pycharm,对于新手来说社区版的功能足够满足需求。还可以使用sublimetext编译器(好像是收费的)进行代码编译,还有很多我这边就不一一列举了。附上PyCharm官网链接pycharm下载这篇博客来记录介绍一下pycharm各个版本的区别pycharm是一专注于python的集成开发环境,…

    2022年8月25日
    6
  • addrule android用法,RelativeLayout.LayoutParams 使用addRule失效的问题解决办法[通俗易懂]

    addrule android用法,RelativeLayout.LayoutParams 使用addRule失效的问题解决办法[通俗易懂]Buttonbtn1;btn1.setId(1001);intwidth;//layoutwidth;intbtnWidth;//btnwidth;intbtnHeight;//btnheight;…….RelativeLayout.LayoutParamsp=newRelativeLayout.LayoutParams(btnWidth,btnHeight…

    2022年7月17日
    17
  • reload与refresh

    reload与refreshwindow.reload()是重新加载当前需要的所有内容.window.Refresh()是刷新,保留之前的缓存内容,重新加载页面,之前存在的东西不会动,没加载上来的东西继续加载.

    2022年7月18日
    10
  • Mac配置Maven环境[通俗易懂]

    Mac配置Maven环境[通俗易懂]1.下载maven包到本地https://maven.apache.org/download.cgi1.在应用程序找到终端(实用工具)文件夹里面2.输入命令:vi~/.bash_profile输入i进入编辑模式输入:(注意⚠️M2_HOME需要填写为自己的路径哦~)exportM2_HOME=/Library/apache-maven-3.5.3exportPATH…

    2022年5月15日
    56
  • ORACLE存储过程的分支语法(IF语句)

    ORACLE存储过程的分支语法(IF语句)基本语法1.if条件then语句1;语句2;endif;2.if条件then语句序列1;esle语句序列;endif;3.if条件then语句;elsif语句then语句;else语句;endif;…

    2022年7月17日
    13

发表回复

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

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