码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-07-25 12:28:25      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

一个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).


版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:

原文地址:http://blog.csdn.net/jiangqin115/article/details/47054365

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!