Winform

今天突然想动手搞个桌面小程序,类似便利贴那样无边框又能支持拖动,忘了怎么实现,翻找了下以前的笔记,幸好还在,是通过WinAPI发送窗体消息来实现,特整理记录一下作为分享。

==========  原创作品    作者:Yokeqi    出处:博客园  ==========

1. 引入WinAPI,定义消息常量

[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_MOVE = 0xF010;
public const int HTCAPTION = 0x0002;

2. 在需要响应拖放的地方加入以下代码,例如Form1_MouseDown事件中添加

ReleaseCapture();    // 释放鼠标捕获
SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);// 向窗体发送消息

--------------------------------------------------

技术,让世界更美好 | 分享,让技术更简单
郑重申明:转载请留言告知,不能擅自篡改文章内容
原文地址:https://www.cnblogs.com/yokeqi/p/14327860.html