flashget那样的悬浮框是怎么做的?(求源码)

whblxl 2006-11-16 11:27:58
C#的代码
win2000/winxp操作系统

...全文
255 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
KKND2006 2006-11-17
  • 打赏
  • 举报
回复
其实修改窗体的HITTEST就可以了

一律返回HITTEST为标题栏的HITTEST,就可以拉着窗体到处跑了

以前VC都这么干的,C#中也可以用HITTEST,只是消息处理这里可能要麻烦一些
fengyuhong 2006-11-17
  • 打赏
  • 举报
回复
private Point MouseSet;
private bool IsMouseDown;

private void Login_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
int Xoffset;
int Yoffset;
if(e.Button==MouseButtons.Left)
{
Xoffset=-e.X-SystemInformation.FrameBorderSize.Width;
Yoffset=-e.Y-SystemInformation.FrameBorderSize.Height;
MouseSet=new Point(Xoffset,Yoffset);
IsMouseDown=true;
}
}

private void Login_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(IsMouseDown)
{
Point MousePos=Control.MousePosition;
MousePos.Offset(MouseSet.X,MouseSet.Y);
Location=MousePos;

}
}

private void Login_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button==MouseButtons.Left)
{
IsMouseDown=false;
}
}

这样不行吗
dotnba 2006-11-17
  • 打赏
  • 举报
回复
鼠标放到窗体,写相应事件不就OK?
dyw31415926 2006-11-17
  • 打赏
  • 举报
回复
楼上说的有道理,同时我认为难解决的是去掉了form的边框后,怎么移动?这个移动函数怎么写?
bigrongshu 2006-11-17
  • 打赏
  • 举报
回复
画个Form,颜色和透明度设置一下,TopMost = true;不行吗?
从不签到 2006-11-17
  • 打赏
  • 举报
回复
c#拖动无标题窗体

1.引入命名空间
using System.Runtime.InteropServices;
2.
[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;
3.在空间的_MouseDown中加入如下代码:
如:


private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
}
jedliu 2006-11-17
  • 打赏
  • 举报
回复
看看!
skywolfma 2006-11-17
  • 打赏
  • 举报
回复
……我做了个完全模拟FLASHGET的界面,包括悬浮窗以及下载时的下载速度的效果,需要的话跟我联系17353886
dyw31415926 2006-11-17
  • 打赏
  • 举报
回复
看来这问题已经解决了,我已经做出效果来了.
1设置form的一些属性
    this.FormBorderStyle = FormBorderStyle.None; //去掉边框
this.TopMost = true;  //设为最上一层
2写移动函数
参考
fengyuhong() ( )的函数(其实就是c#做不规则窗体那一篇文章的移动函数,怪不得我怎么越看越觉得眼熟悉呢,哈哈 ^-^,不过会找资料是一种能力,而且是程序员必须具备的能力哈)

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧