请问c#怎样实现这样的窗体:整个窗体是一个空白的矩形,没有标题栏或者说是透明的标题栏,把鼠标放到上面标题栏的位置可以拖动窗体,移到右上角会出来一个“X”,可以关闭程序。
解决方案 »
- 求一个C#最简单的TCP传输信息例子(就是实现聊天和传送文件)
- 小妹请教下C#socket服务器端byte[]修改的问题
- ImageFormat.MemoryBmp ImageFormat.Bmp 区别
- 日历控件显示的星期格式是“星期一”“星期二”……这样,我想改成“一”“二”。。。
- 发布winform程序后 无法启动程序
- 脱离开发环境后出现的问题,希望高手们帮忙。
- c# 读数据的时候窗体卡死。。
- 关于devexpress 中 grid 单元格编辑
- c#没有办法直接调用二维数组的一维嘛?
- c# windows窗体调用exe执行后报错问题
- C#from窗体里面怎么添加个滚动条
- ***如何修改文件夹图标?
在顶端放一个panel 用来做自己的标题栏
拖动代码:
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); //引入API在panel 的OnMouseDown事件中写:
ReleaseCapture();
SendMessage((IntPtr)f.Handle,WM_SYSCOMMAND,SC_MOVE+HTCAPTION,0);这样就可以随意做自己的标题栏了
请问这个函数里几个参数是什么
const int WM_SYSCOMMAND = 0x0112;
const int SC_MOVE = 0xF010;
const int HTCAPTION = 0x0002; 具体消息内容请自行查找解决,很简单,相信你能行的~~
然后在把你的东西画到窗体上去。
SendMessage((IntPtr)f.Handle,WM_SYSCOMMAND,SC_MOVE+HTCAPTION,0)
1、(IntPtr)f.Handle表示向当前窗体发送消息
2、WM_SYSCOMMAND消息是预定义好的一组命令消息,框架有默认的处理方式,
3、SC_MOVE+HTCAPTION表示鼠标在标题栏上,消息是移动