懵懵燈燈的BLOG

          寒夜孤燈點點星

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            56 隨筆 :: 10 文章 :: 22 評論 :: 0 Trackbacks

          作一個CFormView,其中增加一個CListCtrl控件,想把這個控件的style設置為整行高亮顯示。
          在網上誤傳的方法為:

          1 void CMyView::OnInitialUpdate()
          2 {
          3     //INIT the control
          4     CFormView::OnInitialUpdate();
          5 
          6     CListCtrl * list=static_cast<CListCtrl*> (GetDlgItem(IDC_LIST));
          7     list->ModifyStyleEx(0,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
          8     


          其中ModifyStyle 或者 ModifyStyleEx 都是修改的CWnd中的擴展屬性,而正解為:

          1 void CMyView::OnInitialUpdate()
          2 {
          3     CFormView::OnInitialUpdate();
          4 
          5     CListCtrl * list=static_cast<CListCtrl*> (GetDlgItem(IDC_LIST));
          6     DWORD   dwStyle   =   list->GetExtendedStyle();   
          7     dwStyle   |=   LVS_EX_FULLROWSELECT   |   LVS_EX_GRIDLINES; 
          8     list->SetExtendedStyle(dwStyle);   

          另外兩個函數也容易引起誤解:
          CWnd::getExStyle
          CListCtrl::getExtendedStyle
          這兩個函數所得到的style不在同一個style空間,如果用混了出現的效果就會比較奇怪。

          最后感慨一下在網上傳播的東西真是很多錯誤。

          posted on 2007-12-09 23:44 懵懵燈燈 閱讀(6625) 評論(0)  編輯  收藏 所屬分類: MFC
          主站蜘蛛池模板: 汉源县| 娄烦县| 广东省| 礼泉县| 漠河县| 曲靖市| 海安县| 洛宁县| 营口市| 琼中| 和静县| 澄江县| 丹棱县| 抚顺市| 宣武区| 恩平市| 乌拉特前旗| 孟村| 武穴市| 黄骅市| 白河县| 河北区| 通许县| 巴塘县| 汾西县| 泰来县| 茶陵县| 靖边县| 黄大仙区| 屏东县| 车险| 永平县| 西林县| 沙湾县| 青海省| 常德市| 岱山县| 读书| 石门县| 新余市| 云龙县|