日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
請將所有未處理的消息傳遞給DefWindowProc

在之前的一篇文章中,我曾提到:如果你希望拒絕一次設(shè)備移除查詢請求,則需要返回一個特殊的 BROADCAST_QUERY_DENY 值,因為太多的程序開發(fā)者認為,他們已經(jīng)覆蓋了所有 Windows 消息的處理了,對于其他的消息,直接返回 0 就可以了。

從那時候開始,操作系統(tǒng)引入了很多新的消息,這些消息中的很大一部分都是在 DefWindowProc 中進行了默認的處理。
時不時的,我會碰到一些應(yīng)用程序會這樣假設(shè):微軟應(yīng)該從來不會優(yōu)化窗口管理器組件吧?對于那些我不需要處理的消息,我直接返回 0 就可以了,問題不大。

其實,這些應(yīng)用程序甚至都沒有處理所有現(xiàn)有的舊消息!

我們看一個例子,在一個應(yīng)用程序中,它有一個幫助窗口,這個窗口會處理一些它感興趣的消息,然后對于所有其他消息,它直接返回了 0。結(jié)果就是:用戶連關(guān)機都關(guān)不了,因為應(yīng)用程序?qū)ο到y(tǒng)發(fā)出的廣播消息 WM_QUERYENDSESSION 返回了一個 0,這意味著,應(yīng)用程序?qū)Σ僮飨到y(tǒng)說:”等等,請不要關(guān)機”。

我猜這個應(yīng)用程序的開發(fā)者會意味用戶會在關(guān)機前先手動關(guān)閉他的應(yīng)用程序吧。

另外,自定義鍵盤按鈕(如音量控制按鈕)也不起作用(如果焦點在此幫助程序窗口上),因為它忽略了將 WM_APPCOMMAND 消息傳遞給 DefWindowProc 函數(shù)。

因此,我再次懇求你:如果你不處理窗口過程中的消息,請將其傳遞給 DefWindowProc 函數(shù)。你的用戶真的會謝。

另外有個小細節(jié)需要注意:如果你使用的是框架窗口,請遵循該框架的協(xié)議來指示你希望進行默認消息處理。例如,對話框過程不會將未經(jīng)處理的消息傳遞給 DefWindowProc 函數(shù)。它們僅返回 FALSE 以指示應(yīng)進行默認處理。

總結(jié)

我想這里作者的原則很簡單:對于你不想處理的消息,不要處理并簡單返回 0,而是交給系統(tǒng)默認處理函數(shù) DefWindowProc。

否則,各種意外會發(fā)生。


網(wǎng)頁題目:請將所有未處理的消息傳遞給DefWindowProc
文章鏈接:http://www.5511xx.com/article/cdcehpo.html