国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
怎么實(shí)現(xiàn)子窗口的背景透明?
主      題: 怎么實(shí)現(xiàn)子窗口的背景透明?
作      者: Bill.Gates
回復(fù)次數(shù): 3
發(fā)表時(shí)間: 2008-3-28 13:56:42
正文內(nèi)容:
我嘗試用父窗口的DC來填充 對應(yīng)的位置,通常是好的,但是在子窗口重畫的時(shí)候就 模糊了。。。有解決方法嗎?
回復(fù)人: 1982c0ffee2008-3-28 14:05:36
無主題
SetWindowLong(GWL_EXSTYLE, GetWindowLong(GWL_EXSTYLE)^WS_EX_LAYERED);
HINSTANCE hInst = LoadLibrary(_T("User32.DLL"));
if(hInst)
{
typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
MYFUNC fun = NULL; //取得SetLayeredWindowAttributes函數(shù)指針
fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
if(fun)fun(m_hWnd,RGB(255,0,255),0,1);
FreeLibrary(hInst);
}
回復(fù)人: 1982c0ffee2008-3-28 14:06:21
把這段代碼貼到你子窗口初始化函數(shù)里去
回復(fù)人: 1982c0ffee (得分:10)2008-3-28 14:07:49
無主題
子窗口的透明和主窗口完全不同,   主窗口是通過layeredwindow實(shí)現(xiàn)的,   而子窗口則必須自己實(shí)現(xiàn),   尤其是半透明,   必須自己對獲取的透明背景圖進(jìn)行操作。   要實(shí)現(xiàn)子窗口的透明需要做到下面幾步:
1.   windows的ExStyle中需要包含WS_EX_TRANSPARENT屬性
2.   windows的Style中要去掉WS_CLIPSIBLING屬性
3.   對繼承自windows標(biāo)準(zhǔn)控件的子窗口(   比如edit,   scrollbar等等   ),   需要截獲WM_CTLCOLORxxx消息并返回一個(gè)style為BS_HOLLOW的brush的handle(即一個(gè)透明畫刷的handle)
4.   需要截獲WM_ERASEBKGND消息并不要清除背景(如果做到了3,   則這一步可以省略)
5.   最關(guān)鍵的一點(diǎn)(也是很多人沒有想到或不知道的),   必須將parent窗口style中的WS_CLIPCHILDREN標(biāo)志去掉,   否則PARENT窗口重畫時(shí)不會(huì)重畫被子窗口覆蓋的部分.
6.   做到以上各步后,   在子窗口收到WM_PAINT消息時(shí)就可以獲得完整的背景圖了,   接下去對這背景進(jìn)行處理就可以實(shí)現(xiàn)半透明效果.
另外一點(diǎn),   最好同時(shí)截獲parent窗的WM_PAINT消息,   在parent窗重畫前調(diào)用InvalidateRect讓本子窗口顯示實(shí)效,   這樣子窗口才能同樣也收到一個(gè)WM_PAINT消息(   這樣做是為了保險(xiǎn),   因?yàn)槲也皇呛艽_定主窗口重畫系統(tǒng)是否會(huì)自動(dòng)給具有WS_EX_TRANSPARENT屬性的子窗口同樣發(fā)WM_PAINT   ).
(###)
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Windows窗口刷新機(jī)制詳解
Windows程序設(shè)計(jì)——Windows單選按鈕、復(fù)選框、分組框控件
很犀利的防止自定義的用戶控件閃爍方法
xp下實(shí)現(xiàn)窗體透明特效SetLayeredWindowAttributes函數(shù)
GetWindowRect,GetClientRect,ScreenToClient MoveWindow SetWindowPos 用法說明
RedrawWindow(NULL, NULL, RDW
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服