本来是想在vb.net中移动无标题栏的窗口的位置,找了很多资料,还是没能解决.
第1种方法:这种方法在vs2003中好象还可以,但是在vs 2005中会报错,实现代码如下
Public Const WM_NCLBUTTONDOWN = &HA1S

Public Const HTCAPTION = 2

End Sub
但如果你是在C#中使用又没有问题,把上面的一段代码改为C#的语法就可以了,实现的方法是一样
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SendMessage")]
public static extern int SendMessage(int hWnd, int wMsg, int wParam, int lParam);
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "ReleaseCapture")]
private static extern int ReleaseCapture();
public const int WM_SysCommand = 0x0112;
public const int SC_MOVE = 0xF012;
因此最后只有结合这两种
用C#写一个DLL,在VB中调用
实现如下:
C#类库:
namespace MoveWindow
在VB.net中调用,先添加Dll的引用,实现代码如下
![]()
End Sub
方法3:
如果你是直接在在窗体上移动位置,则可以加入下面的代码,但如果窗体上有控件则不能响应到MouseDown,这个道理很简单,因为被别的控件挡住了
Public Const WM_NCLBUTTONDOWN = &HA1S

Public Const HTCAPTION = 2

End Sub
e
相关文章: