CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

【高分】qq那样的效果,如何改变被拖动的窗体虚框的大小

楼主hujiiori(Coder×Coder——sytu)2005-06-03 10:43:05 在 .NET技术 / C# 提问

当我拽着窗口标题栏拖动的时候,左键不松开,如何改变那个拖动的窗体虚框的大小,举例来说,你拖动qq的窗体到屏幕的左边界或右边界(左键不松开),你会发现虚框会变大撑满整个屏幕高度,而且虚框无法移出屏幕,请问这样的效果怎么做的。。欢迎讨论 问题点数:199、回复次数:12Top

1 楼dutguoyi(新鲜鱼排)回复于 2005-06-03 11:08:16 得分 20

抢个地方,呵呵Top

2 楼hujiiori(Coder×Coder——sytu)回复于 2005-06-03 11:21:07 得分 0

初步构想,,  
                  如果用窗体原来的标题栏,拖动的时候是没有相应的事件的,好像需要判断windows消息以确定鼠标拽住了窗体,  
                          如果标题栏是个自己画上去的panel,那可以轻松得到相应事件,剩下去的事情只要想办法画虚框了。  
                  另外,如果放弃画虚框,直接让窗体跟着鼠标移动,那个是可以较简单实现的,不到万不得已不想这样弄Top

3 楼hujiiori(Coder×Coder——sytu)回复于 2005-06-03 11:39:52 得分 0

控制面板-显示-效果-拖动时显示窗口内容(2000系统),这一项必须不选,才有虚框效果,,刚刚发现的,Top

4 楼bumm(......)回复于 2005-06-03 12:01:31 得分 15

帮顶Top

5 楼liudancodeman(刘丹(只在此山中,云深不知处))回复于 2005-06-03 12:15:39 得分 15

讨论讨论Top

6 楼CWestWolf(月下独嗥)回复于 2005-06-05 17:45:21 得分 20

小比胡吉,XP下没有虚框的哇, 但我认为可以利用判断窗口位置来做Top

7 楼hujiiori(Coder×Coder——sytu)回复于 2005-06-05 17:48:57 得分 0

楼上那位,认错人了吧,骂人会被删贴的,请自重,看我3楼的跟贴,xp下也可以有虚框的,不过设置的地方有点出入Top

8 楼hujiiori(Coder×Coder——sytu)回复于 2005-06-29 16:35:08 得分 0

再顶一下,有没有人会啊Top

9 楼jjkkwwww(第六感气味)回复于 2005-06-29 17:09:46 得分 15

难度  
  Top

10 楼winterice(冬天的冰)回复于 2005-06-29 17:26:29 得分 14

帮顶Top

11 楼stonegoldaustin(特醇中南海)回复于 2005-06-29 17:37:34 得分 100

using   System.Runtime.InteropServices;  
  [DllImport("user32.dll")]  
  public   static   extern   bool   ReleaseCapture();  
  [DllImport("user32.dll")]  
  public   static   extern   bool   SendMessage(IntPtr   hwnd,int   wMsg,int   wParam,int   lParam);  
  private   const   int   WM_SYSCOMMAND=0x0112;  
  private   const   int   SC_MOVE=0xF010;  
  private   const   int   SC_SIZE=0xF110;  
  private   const   int   HTCAPTION=0x0002;  
  private   bool   isDown;  
   
   
  private   void   Form1_MouseMove(object   sender,   System.Windows.Forms.MouseEventArgs   e)  
  {  
  if(isDown)  
  {  
  ReleaseCapture();  
  SendMessage(this.Handle,   WM_SYSCOMMAND,   SC_MOVE   +   HTCAPTION,   0);  
  }  
  }  
   
  private   void   Form1_MouseDown(object   sender,   System.Windows.Forms.MouseEventArgs   e)  
  {  
  if(e.Button   ==   MouseButtons.Left)  
  {  
  isDown   =   true;  
  }  
  }  
   
  private   void   Form1_MouseUp(object   sender,   System.Windows.Forms.MouseEventArgs   e)  
  {  
  isDown   =   false;  
  }Top

12 楼hujiiori(Coder×Coder——sytu)回复于 2005-06-29 19:58:01 得分 0

楼上的,拖动标题栏是响应不到mouseDown和mouseUp的,如果状态栏是自定义的panel倒是可以的,看看有没有其他答案,可以使用原来的标题栏。Top

相关问题

  • 窗体拖动问题!!
  • 窗体拖动问题
  • 窗体的拖动问题
  • 拖动无标题窗体?
  • QQ窗体句柄
  • 非标题栏窗体拖动问题
  • 如何使用按钮拖动窗体?
  • 如何拖动一个窗体?
  • 拖动透明窗体的问题
  • winform窗体的拖动问题

关键词

  • 效果
  • 屏幕
  • 虚框
  • 窗体
  • 拖动
  • 标题栏
  • sc
  • private const
  • bool

得分解答快速导航

  • 帖主:hujiiori
  • dutguoyi
  • bumm
  • liudancodeman
  • CWestWolf
  • jjkkwwww
  • winterice
  • stonegoldaustin

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo