'************************************************************* '說明: 在VB6.0中移動無標題欄的窗口 '備註:測試代碼的工程名爲:MoveNoTitle '原理:捕獲窗體的鼠標按下事件並將HTCAPTION消息發送給窗口 '做者:袁培榮 yuanpeirong@vip.qq.com '修改時間:2011年09月24日 '************************************************************* '第一步:聲明Windows API函數並定義常量,代碼以下: Private Declare Function ReleaseCapture Lib "user32" () As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Const HTCAPTION = 2 '常量定義 Const WM_NCLBUTTONDOWN = &HA1 '第二步:處理窗體的鼠標按下事件,代碼以下: Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '窗體的鼠標事件 Dim i, Xx As Long If Button = 1 Then '若是按下鼠標左鍵 i = ReleaseCapture() '釋放鼠標捕獲 Xx = SendMessage(hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0) '將消息發給窗口 End If End Sub '第三步:注意,這一步並非實現功能必須的,可是倒是重要的 'VC++建立的對話框窗體默認有一個肯定按鈕能夠關閉窗體,而VB中是沒有的 'VB的窗體只在標題欄中有關閉按鈕,這裏咱們的窗體是無標題欄的 '那麼咱們就沒有關閉按鈕來關閉程序了,這樣是危險的 '所以咱們要加入關閉窗體的事件,這裏選擇以雙擊窗體來退出程序 '固然讀者也能夠在窗體中加個按鈕,並加入關閉窗體的代碼也能夠,方法不少 Private Sub Form_DblClick() '雙擊窗體事件 Unload Me '退出,這裏也能夠將 Unload Me 換成 End 也能夠 End Sub