MFC中的CListCtrl的最左邊一列必須左對齊嗎?

好久不寫MFC的程序了,很多細節問題都記不清了,今晚無意中要用到CListCtrl控件,希望能夠表頭採用自己繪製的方式顯示,於是自己編寫了OnPaint方法進行重繪,過程中需要根據每一列的對齊方式進行繪製表頭中的標題文字,於是通過CHeaderCtrl的GetItem的方法取得每一列的信息,採用瞭如下語句:

在取得了列的信息之後,通過判斷列中的對齊方式進行繪製,判斷語句如下:

但是我在想CListCtrl中插入列的時候,第一列我設置成了劇中對齊,但是結果無論如何都得不到正確的結果,偏偏其他列我又是設置的左對齊,所以結果所有列都是左對齊,於是我認爲是不是GetItem沒有取得對齊方式的數據,結果到MSDN中尋找幫助,結果一無所獲,後來想想是不是我的MSDN太舊了,就到微軟的MSDN網站查看幫助文檔,結果在說明中發現了這樣一句話:

The leftmost column in a list view control must be left-aligned.

不覺感嘆道:這是誰規定的啊?真是不地道。

於是問題又來了,如果讓第一列能夠做到劇中對齊呢?通過實驗發現在InsertColumn的時候第一個參數就是列的索引,取值從1開始,這樣就可以解決問題了。文檔中並沒有提及這個問題,想想文檔的不細緻給使用者帶來了如此的麻煩,相信也有很多人遇到了這個問題,希望這個小小的博客能夠幫助大家節省時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章