如何獲得對窗體移動事件的處理的一個方法

發表于:2007-07-01來源:作者:點擊數: 標簽:
在VB的事件里,沒有對當窗體移動的時候相應的處理事件接口。然而 可以利用子類處理來實現。具體的想法是利用子類處理獲得 WM—MOVE的消息 然后傳遞消息到一個正常的窗體的一個按紐,利用按紐的事件接口來模擬對窗體移動事件的模擬:其具體的實現代碼如下:

在VB的事件里,沒有對當窗體移動的時候相應的處理事件接口。然而

可以利用子類處理來實現。具體的想法是利用子類處理獲得 WM—MOVE的消息

然后傳遞消息到一個正常的窗體的一個按紐,利用按紐的事件接口來模擬對窗體移動事件的模擬:其具體的實現代碼如下:

在窗體里加入一個按紐,命名為EventBn 利用EventBn_click()事件來實現對窗體移動事件的處理/

模塊代碼如下:

public Oldproc as long

public BnHwnd as long

public function Newproc(byval hwnd as long,byval msg as long,byval wp as long, byval lp as long) as long

if msg=wm_move then´捕獲窗體移動事件

sendmessage BnHwnd,wm_lbuttondown,1,0

sendmessage BnHwnd,wm_lbuttonup,1,0´將消息發送到按紐,使其發生CLICK事件

end if

newproc= callwindowproc(oldproc,hwnd,msg,wp,lp)

end function

窗體內代碼:

private sub form_load()

BnHwnd=EventBn.hwnd´獲得按紐句丙

Oldproc=setwindowlong(me.hwnd,gwl_wndproc,addressof Newproc)

end sub

private sub EventBn_click()

´在這里添加窗體移動的代碼

end sub


原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97