none
如何取得系統預設的資料夾圖示,並使用到ImageList中? RRS feed

  • 問題

  • 如何取得系統預設的資料夾圖示,並使用到ImageList中?

    要使用在TreeView上,就像檔案總管一樣

    2007年3月12日 下午 05:45

所有回覆

  • 謝謝璉璉大

    我使用後是可以顯示磁碟機、資料夾等但是有個外觀上的小問題:圖示的邊緣原本應該是陰影的部分變得很怪,如下圖

    http://homelf.kimo.com.tw/litfal/VB/test.jpg

    而不如璉璉貼出來的預覽圖好

    ImageList色彩深度使用32bit依然

    另外,若要取得"開啟"的資料夾圖示,又應該如何做呢?

    嘗試了改變lpiIcon參數的值,仍然無效

    2007年3月13日 上午 08:26
  • 那個是透明色的關係,我自己也懶的去處理透明色。

    Tree 的圖示有限,我是用靜態圖檔,只有檔案列表那邊我才用動態抓。

    資料夾開啟的圖示,你可以抓

    %SystemRoot%\system32\SHELL32.dll

    第 4 還第 5 的圖示,就是資料夾開啟的圖示。

    2007年3月13日 上午 08:57
    版主
  • 我剛剛確認過了,前面貼的函數範例網址有明確說到是檔案清單~ 所以沒包含 Tree ~

    2007年3月13日 上午 08:58
    版主
  • 謝謝,由於ListView和TreeView都是使用ImageList作為圖示的媒介,所以很自然的就套用上去了

    後來使用了軟體直接把Shell32.dll裡面的Icon直接抓取出來,果然發現了透明度的問題

    圖形的最外側為粉紅色(RGB(255,0,255) ),以一般來說把這個顏色設成TransparentColor就行了,之前在VB6寫小遊戲也是配合API這樣處裡的

    可是在圖形的邊緣很明顯的也有粉紅色的遞色,也就是無法用單一顏色遮罩處裡。

     

    是我截取圖片的問題嗎?還是這邊需要一些特殊的運算法如XOR來處裡呢?

    高階語言愈來愈方便,卻發現遇到這種需要演算處裡的地方是弱項...(看來必須要丟到C去磨練磨練)

     

    如果有空的話,能提供一些簡單資料或稍微講解嗎

    2007年3月14日 上午 11:24