看板 Programming 關於我們 聯絡資訊
本人正在以 C 語言搭配 Windows API 設計視窗程式,沒有使用其他 GUI framework , 當使用 ListView 實作縮圖預覽的時候遇到幾個問題: 1. ListView 裡面被選擇 (selected) 的項目會有 highlight 效果, 就算設定了 LVS_EX_BORDERSELECT 樣式也會在圖示四周產生框線,不知有沒有方 法讓 highlight 效果不要出現? 2. 我希望 client 區域的左邊保留一定寬度、第一列項目的上方保留一定高度的空白 區域,使用 ListView_SetWorkAreas 巨集來設定 WorkArea 似乎可以達到效果, 但是只要一拉動卷軸、新增或刪除項目,或是改變 ListView 的大小效果就會消失。 3. 圖示下面的 label 會依照文字的長度而自動調整大小,有沒有辦法讓 label 固定 寬度,比如說固定成和縮圖一樣寬,而且只顯示一列? 通過攔截 ListView 的 NM_CUSTOMDRAW notification ,我可以對每一個項目的繪製 進行客製化,但是以上幾個問題卻會妨礙較精細的操作,希望可以解決。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.82.140.188
uziel:第一個問題已經解決,方法是在 paint cycle 111.82.61.207 12/13 10:18
uziel:中的 CDDS_ITEMPREPAINT 階段把 item state 111.82.61.207 12/13 10:19
uziel:的 LVIS_SELECTED 旗標設為 0 ,到了 111.82.61.207 12/13 10:20
uziel:CDDS_ITEMPOSTPAINT 階段再設定回去。 111.82.61.207 12/13 10:21