久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

怎么實現(xiàn)子窗口的背景透明,?

 9loong 2013-08-26
主      題: 怎么實現(xiàn)子窗口的背景透明,? 
作      者: Bill.Gates 
回復(fù)次數(shù): 3 
發(fā)表時間: 2008-3-28 13:56:42 
正文內(nèi)容: 
我嘗試用父窗口的DC來填充 對應(yīng)的位置,,通常是好的,,但是在子窗口重畫的時候就 模糊了。,。,。有解決方法嗎? 

回復(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實現(xiàn)的,,   而子窗口則必須自己實現(xiàn),   尤其是半透明,,   必須自己對獲取的透明背景圖進(jìn)行操作,。   要實現(xiàn)子窗口的透明需要做到下面幾步: 

1.   windows的ExStyle中需要包含WS_EX_TRANSPARENT屬性 
2.   windows的Style中要去掉WS_CLIPSIBLING屬性 
3.   對繼承自windows標(biāo)準(zhǔn)控件的子窗口(   比如edit,   scrollbar等等   ),   需要截獲WM_CTLCOLORxxx消息并返回一個style為BS_HOLLOW的brush的handle(即一個透明畫刷的handle) 
4.   需要截獲WM_ERASEBKGND消息并不要清除背景(如果做到了3,   則這一步可以省略) 
5.   最關(guān)鍵的一點(也是很多人沒有想到或不知道的),   必須將parent窗口style中的WS_CLIPCHILDREN標(biāo)志去掉,   否則PARENT窗口重畫時不會重畫被子窗口覆蓋的部分. 
6.   做到以上各步后,   在子窗口收到WM_PAINT消息時就可以獲得完整的背景圖了,   接下去對這背景進(jìn)行處理就可以實現(xiàn)半透明效果. 

    另外一點,   最好同時截獲parent窗的WM_PAINT消息,   在parent窗重畫前調(diào)用InvalidateRect讓本子窗口顯示實效,   這樣子窗口才能同樣也收到一個WM_PAINT消息(   這樣做是為了保險,   因為我不是很確定主窗口重畫系統(tǒng)是否會自動給具有WS_EX_TRANSPARENT屬性的子窗口同樣發(fā)WM_PAINT   ).

(###)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多