也許有用(也談VC中ModifyStyle&ModifyStyleEx無法改變控件的Style)
睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接
一個View中用到了一個CListCtrl,在OnInitialUpdate函數里面他調用了m_listCtrl.ModifyStyleEx(0, LVS_EX_FULLROWSELECT);但是結果是并沒有改變View中這個ListCtrl的效果。
仔細的查閱了MSDN的關于ModifyStyleEx的說明,發現沒什么可以的地方,調試幾遍發現也沒異常,最后在網上一搜索ModifyStyleEx,結果發現碰到這個問題的朋友還真不少,有一遍關于ModifyStyle和ModifyStyleEx無法改變樣式的解決方法的文章被轉載得到處都是,不僅感慨現在的互聯網信息重復程度~~結果看完文章很失望,他完全是重新Create了一個控件。
最后經過努力,發現使用SetExtendStyle函數就可以實現改變Style的功能。
有一點是可以肯定地,如果你重構一個控件繼承自CListCtrl,那么你可以在該控件的OnCreate中使用ModifyStyle或者ModifyStyleEx,這都是可以達到目的的,但是如果控件的一個實例是另一個窗口的成員變量,那么你在這個窗口的初始化函數中調用該控件的ModifyStyle或者ModifyStyleEx是不能達到目的的,有些關聯的一個說明是SetWindowLong會因為控件和調用者不在同一進程而失敗(ModifyStyle和ModifyStyleEx函數中有調用SetWindowLong).RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成