日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 測(cè)試測(cè)量 > 測(cè)試測(cè)量
[導(dǎo)讀]對(duì)于前面板和前面板上的控件,如果鼠標(biāo)左鍵點(diǎn)擊面板上的一個(gè)控件,控件肯定會(huì)發(fā)生mouse down事件,那么由于控件是位于面板上的,面板是否會(huì)發(fā)生mouse down事件那?如果發(fā)生mouse down事件,那么這個(gè)兩個(gè)事件的先后次序如何

對(duì)于前面板和前面板上的控件,如果鼠標(biāo)左鍵點(diǎn)擊面板上的一個(gè)控件,控件肯定會(huì)發(fā)生mouse down事件,那么由于控件是位于面板上的,面板是否會(huì)發(fā)生mouse down事件那?如果發(fā)生mouse down事件,那么這個(gè)兩個(gè)事件的先后次序如何?根據(jù)WINDOWS窗口過(guò)程處理來(lái)看,任何消息應(yīng)該是主窗口先得到所有消息,然后派發(fā)到它上面的各個(gè)控件.LABVIEW是否也是這樣處理的那?做個(gè)實(shí)驗(yàn)看一下.



看得出,面板先產(chǎn)生mouse down 然后圖片控件才產(chǎn)生mouse down事件,驗(yàn)證上面的設(shè)想.

有的鼠標(biāo)事件是連續(xù)發(fā)生的,比如mouse move事件,那mouse down ,mouse up,mouse enter,mouse leave是否是連續(xù)發(fā)生的事件嗎?比如我的鼠標(biāo)一直按下,那mouse down不斷地發(fā)生嗎?因?yàn)檫B續(xù)發(fā)生的事件極大地占用了系統(tǒng)資源,所以編程時(shí)要盡量避免.

大家看測(cè)試程序


測(cè)試結(jié)果:



可以得出結(jié)論:除了mouse move是連續(xù)產(chǎn)生事件之外,其它的都不是連續(xù)發(fā)生了.

下面的問(wèn)題是:

既然任何針對(duì)控件的消息都是通過(guò)PANEL接收并轉(zhuǎn)發(fā)的,那么我們能否截取這個(gè)消息,中斷消息的傳送或者重定向,比如本來(lái)是按鈕A產(chǎn)生事件,我們?nèi)藶榈厥拱粹oB產(chǎn)生事件那,我們研究一下.(VC中稱為鉤子)


仔細(xì)看上圖,事件有的是有?有的沒(méi)有,有?的表示該事件可以進(jìn)行相應(yīng)處理,來(lái)決定消息是否繼續(xù)或者如何繼續(xù).

還是用上面的例子,我們先來(lái)添加PANEL的mouse down事件,并禁止它繼續(xù)傳送,那么PICTURE BOX還能產(chǎn)生響應(yīng)鼠標(biāo)按下的

事件嗎?


從上圖可以清楚地看到,當(dāng)鼠標(biāo)點(diǎn)擊picture box時(shí)候,產(chǎn)生的是pane的mouse down?事件,無(wú)論是是pane還是上面的控件包括STOP按鈕都不再產(chǎn)生mouse down事件,同時(shí),其它的鼠標(biāo)事件 mouse enter ,mouse leave都不受影響.


紅色箭頭處,我們給定常量TRUE,表示后面將忽略這個(gè)mouse down消息.

這樣我們就做到了截取并終止消息的傳送.

這個(gè)方法有很重要的用途,比如我們?cè)跍y(cè)試或者控制中,禁止操作者用鼠標(biāo)對(duì)畫(huà)面進(jìn)行操作,有三種方式

用API函數(shù)全面禁止,包括其他程序,隱藏或這發(fā)灰需要禁止的按鈕(如果多了,就不現(xiàn)實(shí)了),而在程序自身禁止是比較合適的.上面的例子就全面禁止了對(duì)鼠標(biāo)按下的響應(yīng),解決了這個(gè)問(wèn)題.

能否重定向消息那,右面只有四個(gè)可用的選擇:

DISARD:TRUE-->中斷消息傳送,FALSE-->繼續(xù).其它三個(gè)都是和鍵有關(guān)的,所以沒(méi)有好的辦法.

有一個(gè)折中的辦法:對(duì)于每一個(gè)控件都有兩個(gè)屬性value 和value(signal),這兩個(gè)屬性的區(qū)別是當(dāng)給Value(signal)一個(gè)值時(shí),將產(chǎn)生value change事件,沒(méi)有辦法直接其它消息的重定向.





本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉