更多信息請訪問:考試吧計算機類論壇
TlistView 控件是vcl 對windows公用控件庫的一個封裝.用戶TlistView控件并未提供自繪表頭的事件, 一般情況下, 要想自繪表頭比較困難. 但是windows 所有控件的繪制都是由于消息WM_PAINT的產(chǎn)生,而由窗口過程來繪制的, 這樣我們似乎就有可能通過WM_PAINT消息能夠繪制TlistView表頭. 經(jīng)過分析發(fā)現(xiàn)TlistView 的組成實際上包括了兩部分, 一部分是TlistView本省, 另外一部分就是TlistView的表頭, 該表頭實際上是一個嵌入TlistView里面的獨立的窗口, 該窗口的類名為”SysHeader32”.(可以使用ccrun寫的窗口探測工具spy4win觀察的到). 綜合上述依據(jù), 實現(xiàn)TlistView表頭的自繪可以分為一下幾個步驟:
1. 查找TlistView的表頭窗口句柄.
2. 替換表頭窗口的窗口過程
3. 表頭的WM_PAINT消息
4. 在窗口過程中編寫繪制代碼
這樣就能繪制TlistView 的表頭了.具體實現(xiàn)方式如下 :
1. 查找表頭有三種方式
一. 使用FindWindowEx :
以類名”SysHeader32”來查找TlistView的子窗口, 由于TlistView只有一個名為”SysHeader32”的子窗口(就是表頭), 所以一定能夠獲取到表頭窗口的句柄.
相關(guān)推薦:
C實例編程:編寫高效簡潔的C語言四大絕招 計算機等級考試二級C語言高效編程的四招技巧