VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

如何用滑鼠拖曳沒有標題列的視窗

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
ufochen



註冊時間: 2003-09-17
文章: 166


第 1 樓

發表發表於: 星期五 八月 13, 2010 7:04 pm    文章主題: 如何用滑鼠拖曳沒有標題列的視窗 引言回覆

以前曾經在論壇看到過 , 不過現在找不到了 , 請會的人說一下吧 , 謝謝 !
回頂端
檢視會員個人資料 發送私人訊息
ufochen



註冊時間: 2003-09-17
文章: 166


第 2 樓

發表發表於: 星期日 八月 15, 2010 12:13 am    文章主題: 引言回覆

找到資料了!

*** 方法一 *************************
** 在表單的MouseDown事件放入下面代碼 **
#DEFINE WM_SYSCOMMAND 0x112
#DEFINE WM_LBUTTONUP 0x202
#DEFINE MOUSE_MOVE 0xf012

DECLARE Long ReleaseCapture IN WIN32API
DECLARE Long SendMessage IN WIN32API ;
Long HWND, Long wMsg, Long wParam, Long Lparam
IF nButton = 1
= ReleaseCapture()
= SendMessage(Thisform.HWnd, WM_LBUTTONUP, 0x0, 0x0)
= SendMessage(Thisform.HWnd, WM_SYSCOMMAND, MOUSE_MOVE, 0x0)
ENDIF


** 方法二 *********************************************

1.給要移動的表單自定義兩個新屬性:mouseX ,mouseY,
用於記錄當前鼠標點擊時的位置
2.表單的MouseDown事件代碼:
LPARAMETERS nButton, nShift, nXCoord, nYCoord

IF nButton = 1 && 如果鼠標左鍵按下
thisform.mouseX = nXCoord && 記錄鼠標點擊的X坐標
thisform.mouseY = nYCoord && 記錄鼠標點擊的Y坐標
ENDIF

3.表單的MouseMove事件代碼:

LPARAMETERS nButton, nShift, nXCoord, nYCoord

IF Mdown() .AND. nButton=1

* 設置表單的Left 值和Top 值,達到移動表單的效果
thisform.Left = thisform.Left + (nXCoord - thisform.mouseX)
thisform.Top = thisform.Top + (nYCoord - thisform.mouseY)
ENDIF
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作