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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于OnPaint、FormPaint会不停的触发 触发多次的情形---讨论总结

發(fā)布時間:2024/4/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于OnPaint、FormPaint会不停的触发 触发多次的情形---讨论总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)于OnPaint會不停的一直觸發(fā) 觸發(fā)多次的問題,是這樣的 首先OnPaint是響應(yīng)windows的WM_PAINT消息的,你顯示器上 能看到的比如說 按鈕button, memo什么的 都是畫出來的

但是再程序運行的過程中 可能會發(fā)生變化,比如 你在代碼里 定時把一個button刪除 你雖然程序上 刪除了 這個button 但是 如何讓用戶看到 還是 需要 反映再 顯示器上的,要想反映在

顯示器上 那么就需要 重新 再次 把這個 form畫一遍。

舉例:兩個form 其中一個form2.ShowModal 遮罩住了form1 ,假如form1被完全遮罩了 那么 form1的onPaint事件 就不會被觸發(fā) ,是由windows 根據(jù)顯示器 看到的內(nèi)容 動態(tài)的選擇

合適的時機 給程序 發(fā)送WM_PAINT消息的,那什么叫 合適的時機呢 就是 你眼 當(dāng)前看到的內(nèi)容 或 其它情況 比如當(dāng)前光標(biāo)再窗體1上 等等 這個是windows 顯示技術(shù)的核心 具體我們不清楚。

以下是我?guī)煾档恼f法:

實際上是對WM_PAINT消息的響應(yīng)
實際上,現(xiàn)在的Windows要比早年的,少觸發(fā)好多次 原來,你窗口被別的窗體遮蓋,別的窗體挪走,就會觸發(fā),現(xiàn)在一般不會,Windows的桌面混合器會緩存
所以就不一定觸發(fā)了? 你窗口創(chuàng)建完顯示時,Windows會發(fā)個WM_PAINT消息給程序自繪,你窗體上的控件刪除或移動位置時,會調(diào)用API來標(biāo)記某些區(qū)域無效,然后Windows會在它認(rèn)為合適的時間點,發(fā)WM_PAINT消息讓你的程序重繪顯示? 重繪是一種優(yōu)先級比較低的消息,而且Windows會合并這個消息? ----------------------------------------------------------------- 綜上:凡是自己繪畫的代碼 最好寫在OnPaint事件里 這樣 才能讓 windows不停的發(fā)送重繪消息 重繪 保持 自己的繪畫內(nèi)容 不消失。 我自己做的demo如下:http://files.cnblogs.com/files/del88/OnPaint.zip

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/del88/p/6368128.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的关于OnPaint、FormPaint会不停的触发 触发多次的情形---讨论总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。