国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
攔截窗口消息的示例
攔截窗口消息的示例
作者:bb88 文章來源:本站原創(chuàng) 點(diǎn)擊數(shù):88 更新時(shí)間:2009/5/8 21:58:23

 

易語言等可視化編程已經(jīng)將視窗消息封裝為對象的屬性、方法和事件。

當(dāng)我們在窗口中按下鼠標(biāo)左鍵,欲出現(xiàn)信息“你點(diǎn)擊了窗體”,在易語言中是這樣編寫的:

子程序:__啟動窗口_鼠標(biāo)左鍵被按下返回值類型:邏輯型
參數(shù):橫向位置 數(shù)據(jù)類型:整數(shù)型
參數(shù):縱向位置 數(shù)據(jù)類型:整數(shù)型
參數(shù):功能鍵狀態(tài) 數(shù)據(jù)類型:整數(shù)型

信息框 (“你點(diǎn)擊了窗體”, 0, )

但是如果不用“__啟動窗口_鼠標(biāo)左鍵被按下”事件能否達(dá)到這樣的結(jié)果?由于對象的事件也只不過是視窗消息的封裝,所以我們可以用視窗消息實(shí)現(xiàn)這樣的功能。

我們需要用到兩個(gè)API函數(shù):攔截窗口消息函數(shù)SetWindowLongA(置窗口信息)、回調(diào)函數(shù)CallWindowProcA(調(diào)窗口信息)。SetWindowLongA用于隨時(shí)攔截各種窗口消息,通過判斷不同的消息類型執(zhí)行不同的代碼(類似于易語言“事件”的作用);CallWindowProcA用于沒有出現(xiàn)需要的消息類型時(shí),將程序的消息返回到操作系統(tǒng)中,使操作系統(tǒng)繼續(xù)用SetWindowLongA來攔截窗口消息。

請看下面的示例代碼:

Dll命令:置窗口信息返回值類型:整數(shù)型
Dll庫文件名:user32.dll
在Dll庫中的命令名:SetWindowLongA
參數(shù):窗口句柄 數(shù)據(jù)類型:整數(shù)型
參數(shù):取回信息 數(shù)據(jù)類型:整數(shù)型
參數(shù):信息新值 數(shù)據(jù)類型:子程序指針

Dll命令:調(diào)窗口信息返回值類型:整數(shù)型
Dll庫文件名:user32.dll
在Dll庫中的命令名:CallWindowProcA
參數(shù):過程指針 數(shù)據(jù)類型:整數(shù)型
參數(shù):過程句柄 數(shù)據(jù)類型:整數(shù)型
參數(shù):消息類型 數(shù)據(jù)類型:整數(shù)型
參數(shù):特定信息1 數(shù)據(jù)類型:整數(shù)型
參數(shù):特定信息2 數(shù)據(jù)類型:整數(shù)型

常量:窗信_系統(tǒng)命令 值:274 備注:WM_SYSCOMMAND
常量:窗信_鼠標(biāo)按下 值:513 備注:WM_LBUTTONDOWN

窗口程序集:窗口程序集1
程序集容器:指針 數(shù)據(jù)類型:子程序指針
程序集容器:舊窗口信息 數(shù)據(jù)類型:整數(shù)型
程序集容器:舊句柄信息 數(shù)據(jù)類型:整數(shù)型

子程序:__啟動窗口_創(chuàng)建完畢

指針 = &回調(diào)信息

舊窗口信息 = 置窗口信息 (取窗口句柄 (), -4, 指針)

子程序:回調(diào)信息返回值類型:整數(shù)型備注:回調(diào)列表框
參數(shù):窗口句柄 數(shù)據(jù)類型:整數(shù)型
參數(shù):信息類型 數(shù)據(jù)類型:整數(shù)型
參數(shù):值1 數(shù)據(jù)類型:整數(shù)型
參數(shù):值2 數(shù)據(jù)類型:整數(shù)型

判斷 (信息類型 = #窗信_鼠標(biāo)按下)
信息框 (“你點(diǎn)擊了窗體”, 0, )

判斷 (信息類型 = #窗信_系統(tǒng)命令)

如果 (值1 = 61536)
信息框 (“你點(diǎn)擊了關(guān)閉按鈕”, 0, )
否則 如果 (值1 = 61488)
          信息框 (“你點(diǎn)擊了最大化按鈕”, 0, )
          否則
                   如果 (值1 = 61472)
                   信息框 (“你點(diǎn)擊了最小化按鈕”, 0, ) 
                    否則 
                    如果結(jié)束
            如果結(jié)束
如果結(jié)束

返回 (調(diào)窗口信息 (舊窗口信息, 窗口句柄, 信息類型, 值1, 值2))

判斷結(jié)束

返回 (0)

子程序:_按鈕1_被單擊

結(jié)束 ()

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
數(shù)組傳遞摘抄
用命令鎖住一個(gè)文件,禁止所有進(jìn)程訪問
勾子基本概念
※§同創(chuàng)夢想☆◇
拖放取窗口句柄和相關(guān)信息
易語言入門-模仿迅雷懸浮窗口效果
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服