日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于Static控件背景透明时文本覆盖重影的问题

發布時間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Static控件背景透明时文本覆盖重影的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

關于Static控件背景透明時文本覆蓋重影的問題


??????? 通過映射OnCtlColor消息,而后在該函數中使用pDC->SetBkMode(TRANSPARENT)使Static控件背景透明時會出現:文本覆蓋重影的問題,當改變控件的文本就會發生新文本與舊文本重疊的現象。?
??????? 可以通過以下方式使Static控件文本在透明狀態下改變時不會產生文本重疊問題:
??????? 1、由于Static控件的背景已經是透明的了,那么舊文本應該是畫在Static控件的父窗口上的。
??????? 2、在給Static控件設置新文本之后(不是之前!)刷新父窗口即可。例如:
??????????????? GetDlgItem(IDC_STATIC_TEST)->SetWindowText(_T("北京2008"));?
??????????????? GetDlgItem(IDC_STATIC_TEST)->GetParent()->RedrawWindow();
??????????????? IDC_STATIC_TEST為控件ID號。
??????? 3、用上面方法刷新的是整個父窗口客戶區,界面會閃爍,可以只刷Static控件所在的RECT區域,就不會閃爍了。

? 我相信很多VC程序員,都用過OnCtlColor來改變控件的底色,字體顏色等。但是static控件改變之后,就會照成控件不刷新的問題。

HBRUSH CStadus::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) ??

{ ??

???? HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);??????????

?? // TODO: Change any attributes of the DC here ??

?? if (nCtlColor == CTLCOLOR_STATIC) ??

?? { ??

???? pDC->SetTextColor(RGB(0, 0, 0));//設置成你背景的顏色???

????? pDC->SetBkMode(0);//透明???

??? return (HBRUSH)::GetStockObject(NULL_BRUSH);???

} ??

?? // TODO: Return a different brush if the default is not desired???

???? return hbr;???

}

????通過上述代碼使static控件實現透明效果,但是這時候通過setWindowText()改變static控件的內容時,會發現出現了文字重疊在一起,調用次數越多,重疊越嚴重,黑成一團。研究了老久,終于找到解決方法。

方法1RedrawWindow();

在控件需要改變文字的代碼后面加入這個函數即可,如下:

GetDlgItem(IDC_STATIC)->SetWindowText("your string"); ??

GetDlgItem(IDC_STATIC)->GetParent()->RedrawWindow();??

GetDlgItem(IDC_STATIC)->SetWindowText("your string");

GetDlgItem(IDC_STATIC)->GetParent()->RedrawWindow();

這個方法比較奏效,但是有時候窗口刷新太頻繁,一閃一閃,效果不太好。幸好有高人指點,可以用局部刷新來實現。

方法2:局部刷新

可以自定義一個函數如下:

void YourDlg::RefreshControl(UINT uCtlID) ??

{??? ??

???? CRect??? rc;??? ??

?? GetDlgItem(uCtlID)->GetWindowRect(&rc); ??

?? ScreenToClient(&rc);??? ??

?? InvalidateRect(rc);??????

}?????

方法3:隱藏和顯示

?? m_BrightStatic.ShowWindow(SW_HIDE);
?? m_BrightStatic.ShowWindow(SW_SHOW);

void YourDlg::RefreshControl(UINT uCtlID)

{ CRect rc;

GetDlgItem(uCtlID)->GetWindowRect(&rc);

ScreenToClient(&rc); InvalidateRect(rc

方法4?用空白位置填充

SetDlgItemText(IDC_STATIC, "????????");//多用幾個空格,把原先的文本

SetDlgItemText(IDC_STATIC, "TEST");

方法四:

Redrawwindow();//可以防止窗口刷新次數過多 推薦用

?

?

轉載于:https://my.oschina.net/ypimgt/blog/61106

總結

以上是生活随笔為你收集整理的关于Static控件背景透明时文本覆盖重影的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 五月天色婷婷丁香 | 在线不卡二区 | 小嫩嫩精品导航 | www.色人阁.com| 99蜜桃臀久久久欧美精品网站 | 久久天堂av综合合色蜜桃网 | 午夜视频网站 | 9999re| 日日夜夜天天干 | 影音先锋三级 | 精品免费一区二区三区 | 欧美日韩中文字幕在线 | www.久久色 | 欧美极品少妇xxxxⅹ猛交 | 亚洲香蕉在线 | 午夜婷婷色 | 国产一区av在线 | 777精品久无码人妻蜜桃 | 日韩精品视频播放 | 亚州av| 激情丁香网 | 亚洲国产爱| 国外av网站 | 亚洲精品视频免费 | 奇米影视av | 中文在线a天堂 | 日本成人久久 | 亚洲av无码专区在线播放中文 | 亚洲国产日韩在线一区 | 一区二区三区在线免费视频 | 摸大乳喷奶水www视频 | 丁香花电影免费播放在线观看 | 午夜三级福利 | 又污又黄又爽的网站 | 亚洲欧美一区二区三区久久 | 欧美高清性xxxxhdvideosex | 中国a一片一级一片 | 黄色av三级 | 欧美黄色免费大片 | 肉丝美脚视频一区二区 | 围产精品久久久久久久 | 小sao货水好多真紧h无码视频 | 特大黑人巨人吊xxxx | 欧美日本在线视频 | 亚洲一区色 | 黄色网址中文字幕 | 国产a大片 | 国产欧美日 | 成年人黄色 | av四虎| 欧美激情在线免费 | 久久久精品小视频 | 成人wwwww免费观看 | 欧美精品videos极品 | 大奶骚| 日韩欧美高清视频 | 欧美成人一级视频 | 黄色天堂网站 | xxx视频网站| 看个毛片 | 天天干天天添 | 精品少妇久久 | 色小说在线观看 | 成人片片 | 香蕉网站在线观看 | 久久精品黄色 | 国产丝袜视频 | 亚洲高清毛片 | 精品无码久久久久成人漫画 | av免费资源 | 精品一区免费观看 | 性欧美bb| 日日操夜夜摸 | 超碰av在线播放 | 综合网激情 | 午夜高清视频 | 免费aa视频| 捆绑少妇玩各种sm调教 | 国产在线h| 天天干夜操 | 中文字幕免费在线 | 中文字幕在线视频播放 | 国产精品自产拍高潮在线观看 | 涩涩涩在线观看 | 亚洲一区二区三区视频在线 | 在线免费观看亚洲视频 | 成人在线观看一区 | 色婷婷av一区 | 久久免费福利视频 | 在线视频中文字幕 | 成年人性生活视频 | 成人深夜影院 | 灌篮高手全国大赛电影 | 在线播放91灌醉迷j高跟美女 | 最新视频在线观看 | 狠狠狠狠狠狠狠干 | 一本大道伊人av久久综合 | 黄色录像a级片 | 日本人的性生活视频 |