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