通過對映onctlcolor訊息,而後在該函式中使用pdc->setbkmode(transparent)使static控制項背景透明時會出現:文字覆蓋重影的問題,當改變控制項的文字就會發生新文字與舊文字重疊的現象。
可以通過以下方式使static控制項文字在透明狀態下改變時不會產生文字重疊問題:
1、由於static控制項的背景已經是透明的了,那麼舊文字應該是畫在static控制項的父視窗上的。
2、在給static控制項設定新文字之後(不是之前!)重新整理父視窗即可。例如:
getdlgitem(idc_static_test)->setwindowtext(_t("北京2008"));�0�2
getdlgitem(idc_static_test)->getparent()->redrawwindow();
idc_static_test為控制項id號。
3、用上面方法重新整理的是整個父視窗客戶區,介面會閃爍,可以只刷static控制項所在的rect區域,就不會閃爍了。
crect rtlbl;
getdlgitem(nid)->getwindowrect(&rtlbl);
screentoclient(&rtlbl); //轉到客戶端介面
invalidaterect(&rtlbl);//最後重新整理對話方塊背景
updatewindow();
MFC Static控制項背景透明時文字覆蓋重影
通過對映onctlcolor訊息,而後在該函式中使用pdc setbkmode transparent 使static控制項背景透明時會出現 文字覆蓋重影的問題,當改變控制項的文字就會發生新文字與舊文字重疊的現象。可以通過以下方式使static控制項文字在透明狀態下改變時不會產生文字重疊問題 1 由...
使控制項擁有透明背景
windows 窗體程式設計 如何 使控制項擁有透明背景 預設情況下,控制項不支援透明背景色。但是,通過使用建構函式中的 control.setstyle 方法,可以讓控制項擁有不透明 透明或半透明的背景色。control 類的 setstyle 方法用於為控制項設定特定的樣式首選項,並可用來啟用或...
QT 設定控制項透明背景
1.對於繼承於qwidget的控制項或是視窗,將整個控制項當做圖形元素,對該圖形元素進行設定透明度效果 include qgraphicsopacityeffect opacityeffect new qgraphicsopacityeffect ui.label setgraphicseffect...