请选择 进入手机版 | 继续访问电脑版

玩酷之家

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 446|回复: 0

VB.NET 拖动没有标题栏窗体的方法

[复制链接]

3

主题

3

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2018-5-29 20:44:49 | 显示全部楼层 |阅读模式
本帖最后由 VB.NET 于 2018-5-29 20:53 编辑

方法一,代码由VB6转VB.NET
  1.     Const HTCAPTION = 2
  2.     Const WM_NCLBUTTONDOWN = &HA1
  3.     Private Declare Function ReleaseCapture Lib "user32" () As Boolean
  4.     Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, lParam As Integer) As IntPtr

  5.     Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles Me.MouseDown
  6.         If e.Button = MouseButtons.Left Then '是否左键
  7.             ReleaseCapture()
  8.             SendMessage(Me.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0)
  9.         End If
  10.     End Sub
复制代码


方法二,

  1.     Declare Function SendMessage Lib "user32" Alias "SendMessageA" (
  2.                                                   ByVal hwnd As IntPtr,
  3.                                                   ByVal wMsg As Integer,
  4.                                                   ByVal wParam As Integer,
  5.                                                   ByVal lParam As Integer) _
  6.                                                   As Boolean
  7.     Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Boolean
  8.     Const WM_SYSCOMMAND = &H112
  9.     Const SC_MOVE = &HF010&
  10.     Const HTCAPTION = 2

  11.     Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
  12.         ReleaseCapture()
  13.         SendMessage(Me.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0)
  14.     End Sub
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|玩酷之家 ( 鄂ICP备14012049号-1 )

GMT+8, 2018-12-12 15:35 , Processed in 0.156730 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表