易語言透明標簽bug完美解決方案


     洪雨搞軟件這些年,一直在研究功能,對軟件界面要求很低,也沒什么研究,一般用皮膚模塊一套就完事。

    最近在做一個仿軟,需要自繪制方面的知識。可我完全不會,就只能用笨辦法,純組件來做……

    眾所周知,純組件做效果,很大程度上是需要透明標簽的。

    於是發現透明標簽的一個bug……

    就是當透明標簽的背景是動態的時候,比如有動圖的圖片框,或者圖片框底圖或顏色變化,或者背景是圖片按鈕超級按鈕這樣的。就會把透明標簽的字刷掉。也可以說是覆蓋掉。透明標簽直接消失了。

    如果是靜態背景就沒有問題。

    這個bug困擾了我整整一天。后來無意中發現,如果背景不是按鈕,而是圖片框的話,把透明標簽鑲嵌在圖片框上,透明標簽就不會被刷掉。

    這是為啥?

    洪雨當時感覺,應該是因為圖片框成為了透明標簽的父窗口,所以才這樣的。

    於是用了精易模塊的窗口置父命令,發現不行。

    后來又兜兜轉轉浪費了很多時間,查了很多資料。發現全網幾乎都在問這個問題,沒有解決這個問題的。

    最后是在一個不太想關的源碼里找到了答案。趕緊總結記錄一下。

    關鍵解決方案還是要給透明標簽置父句柄,只要動態背景成為了透明標簽的父窗口,透明標簽就不會被刷掉。

    但是,精易模塊的窗口置父,是不行的。要用到API命令

    SetParent (, ) 第一個參數的子窗口句柄,第二個參數是父窗口句柄。

    用API窗口置父,就可以實現功能。

    后來,我查詢了一下精易模塊,發現稍微新一點的版本,還有一個窗口置父彗星,是調用的這個API封裝的,直接用就好了。

    就此,bug完美解決。

原文轉載自:http://www.zhizhuowz.com/post-689.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM