什麼時候不應該使用 LockWindowUpdate?

Mondo 遊戲 更新 2024-01-31

在上一篇文章中,我們研究了應該使用 lockwindowupdate 的場景,即拖動場景。

今天,我們將看一下 lockwindowupdate 被濫用的一些場景。

人們看到 LockWindowUpdate 的“鎖定的視窗將無法重新繪製自身”行為,並將其用作 WM SetRedraw 訊息的懶惰版本。

儘管傳送 WM setredraw 訊息實際上並不比呼叫 lockwindowupdate 難多少。 鍵入的字元數將增加 20 個字元,如果在 中使用 setwindowredraw 巨集,則增加一半。

正如我們前面提到的,一次只能鎖定系統中的乙個視窗進行更新。

例如,如果呼叫 lockwindowupdate 的目的是防止視窗重繪,因為您正在更新視窗,並且不希望視窗在更新完成之前保持重新整理,則只需在該視窗上禁用重繪即可。

如果使用 LockWindowUpdate,則會建立一系列微妙的問題。

首先,如果其他程式以同樣的方式濫用 LockWindowUpdate,那麼其中乙個程式將失敗。 誰先嘗試 lockwindowupdate,誰就會得到它,第二個程式就會失敗。 現在你該怎麼辦?您的視窗不再鎖定。

其次,如果您已鎖定視窗進行更新,並且使用者切換到另乙個程式並嘗試拖動專案(甚至只是嘗試移動視窗!),嘗試將失敗,並且使用者現在處於拖放位置,由於某種神秘原因而停止工作。然後,十秒鐘後,它又開始工作了。 “這個 Windows 系統有乙個錯誤,”使用者咕噥道。

相反,如果決定在執行拖放或視窗移動操作時呼叫 lockwindowupdate,則呼叫將失敗。 這只是乙個更通用的程式設計錯誤的具體示例,該錯誤使用全域性狀態來管理本地條件。

當您想在其中乙個視窗中禁用重繪時,您不希望這影響系統中的其他視窗;這就是當地的情況。 但是,您使用的是全域性狀態(鎖定更新的視窗)來跟蹤它。

我已經可以預期人們會說,“好吧,如果有人不進行拖放,視窗管理器不應該讓他們鎖定視窗進行更新。 但是視窗管理器怎麼知道呢?它知道發生了什麼,但它不知道為什麼。

程式呼叫 lockwindowupdate 是因為它懶得使用 WM setredraw 訊息嗎?或者它這樣做是為了響應導致拖放操作的某些使用者輸入?

請注意,您不能只說“好吧,滑鼠按鈕必須向下”,因為使用者可能正在執行基於鍵盤的操作,例如使用箭頭鍵調整視窗大小,這相當於拖放。

道德問題很難解決,期望計算機能夠推斷出這個問題有點苛刻。

總結。 因此,如果不適用於拖放方案,請不要使用 LockWindowUpdate。 你很有可能需要這個:setredraw。

最後。 Raymond Chen 的“The Old New Thing”是我最喜歡的部落格之一,它有很多關於 Windows 的小知識,這對 Windows 開發人員真的很有幫助。 **with what operations is lockwindowupdate not meant to be used?》

相關問題答案

    什麼情況下會逾期還款,不會影響信用問題?

    正文為百姓天,全文字,讀完全文大約需要分秒。貸款可以說是當今生活中必不可少的一部分,尤其是信用卡。基本上,每個人都使用它,對我們來說,在消費方面是相當愉快的,但是當涉及到還款日期時,它就更痛苦了。一旦無法償還,我們的信用就會受到影響,前段時間,我的乙個朋友遇到了信用卡還款問題。我們可以從她的案例中了...

    珀金斯柴油發動機會發生什麼情況應該進行大修

    珀金斯柴油機是一種常見的柴油機,廣泛應用於各種機械裝置中。但是,隨著使用量的增加,可能會出現一些故障或磨損,需要大修。本文將解釋何時應該對 Perkins 柴油發動機進行大修。首先,當珀金斯柴油發動機的氣缸 活塞 活塞環等關鍵部件嚴重磨損或損壞時,需要對其進行大修。這些部件的磨損或損壞會導致發動機效...

    在什麼情況下可以或應該更換手機電池?更換手機電池還有意義嗎?

    秋冬入住挑戰 嘿嘿,看到這個問題,我真的不能抱怨。說實話,手機作為消費品,想要刺激經濟發展,自然要定期淘汰,如果不定期更新,那麼手機廠就沒有訂單,沒有訂單,就沒有利潤。如果沒有利潤,就沒有辦法給工人發工資,可能就沒有辦法給老闆買LV包。沒有工作,老闆們就多不了孩子,在中國有限的前途,可能就沒有人口了...

    使用者在什麼情況下需要使用IP代理來幫助他們的業務?

    隨著網際網絡的普及和發展,越來越多的人開始利用網際網絡進行各種活動,如瀏覽網頁等。但是,由於許多網路問題,人們可能無法正確訪問某些 或服務。這就是 IP 服務的用武之地,它提供了一種解決此問題的方法。IP服務是通過伺服器更改使用者IP位址的服務。當使用者使用伺服器訪問 Internet 時,其請求將...

    女生什麼時候需要使用胸罩?胸貼的正確使用方法

    女孩在穿一些無肩帶 低背或露背的衣服時可能需要使用胸部貼片。胸部貼片是一種內衣替代品,可以使乳房看起來更緊緻 更光滑 更自然,並能有效避免因內衣不合適而引起的脂肪或裂縫等問題。以下是正確使用胸部貼片的方法 .清潔乳房 在使用胸部貼片之前,首先確保您的乳房清潔乾燥,沒有油脂和汗水。如果需要,您可以使用...