作一個CFormView,其中增加一個CListCtrl控件,想把這個控件的style設置為整行高亮顯示。
在網(wǎng)上誤傳的方法為:
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);
另外兩個函數(shù)也容易引起誤解:
CWnd::getExStyle
CListCtrl::getExtendedStyle
這兩個函數(shù)所得到的style不在同一個style空間,如果用混了出現(xiàn)的效果就會比較奇怪。
最后感慨一下在網(wǎng)上傳播的東西真是很多錯誤。