  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		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 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |