實現步驟如下:
1、把clistctrl子類化
2、在ide中把clistctrl的transparent核取方塊勾上。
3、實現wm_parentnotify,**如下:
void cmylistctrl::onparentnotify(uint message, lparam lparam)
szfilename=ff.getfilename();
if (szfilename.isempty())
if (!ff.isdirectory())
} while (bfind);
setredraw(true);
getparent()->invalidaterect(&m_rc);
delete lp;
} else if (message==wm_user+1&&lparam==0)
else
}
4、實現lvn_itemchanged,**如下:
void cmylistctrl::onlvnitemchanged(nmhdr *pnmhdr, lresult *presult)
*presult = 0;
}
5、分別實現lvn_deleteallitems、lvn_deleteitem、wm_hscroll、wm_vscroll、wm_mousewheel,在每個呼叫clistctrl預設處理之後追加一行**:
getparent()->invalidaterect(&m_rc);
*presult = 0;
6、用類嚮導新建乙個繼承cheaderctrl類的新類,實現wm_paint,**如下:
void cmyheaderctrl::onpaint()
else
}
7、過載presubclasswindow,**如下:
void cmylistctrl::presubclasswindow()
C 完美實現透明窗體的繪製效果
為了實現透明窗體的繪製,最開始是採用了雙層窗體的模式。思路 將form1的屬性transparencykey設定為背景色,將form2的opicaty設定的很低,比如0.05,保證滑鼠不會穿透!讓後將 使用form1建立的繪製物件 form1.creategraphics 去繪製即可!後面方面使用單...
純GDI完美實現半透明不規則視窗
以前在研究半透明不規則視窗的時候,用的是gdi的textout drawtext繪製字型,但繪製出的字型是透明的,現在我完全放棄了gdi的textout bitblt 的方式,而用setdibitstodevice 代替,就是直接貼畫素到dc裡。今天嘗試用setdibitstodevice upda...
物件整體透明實現
在網上沒找到參考 自己想了兩個辦法 1。將物件渲染到紋理上,再把紋理混合到主表面上。zbuffer不用切換,依然使用主表面的zbuffer,這樣層次不會亂。這種做法只需要渲染一次,稍微複雜點。2。將整個物件做兩次渲染,第一次關閉顏色快取的渲染,開啟zbuffer,作一次渲染。第二個pass開啟顏色快...