• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi-我的代码之窗体移动

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

技术交流,DH讲解.

这个工具是好早好早以前写的,我这个喜欢在家边看电影边写写代码或者看电子书,所以经常会将网页移到屏幕的左上角或者右上角,而且要置顶.所以就写了这样一个工具,这个工具主要是对句柄的操作,还有就是窗体样式以及几个API的例子,比较基础.

整个文件在 here(Can't Input Chinese:()

下面把代码贴出来,希望有什么不懂的,结合MSDN,OK?

Var
  Form2: TForm2;
  H: Cardinal = 0;

Implementation

{$R *.dfm}

//------------------------------------------------------------------------------
// 取得鼠标所在处窗体的句柄
//------------------------------------------------------------------------------

Procedure TForm2.BtnGetHandleClick(Sender: TObject);
Var
  Pt: TPoint;
Begin
  If GetCursorPos(Pt) Then
    H := WindowFromPoint(Pt)
  Else
    H := 0;
End;

//------------------------------------------------------------------------------
// 将窗体置顶
//------------------------------------------------------------------------------

Procedure TForm2.BtnTopMostClick(Sender: TObject);
Var
  Rc: TRect;
Begin
  If H = 0 Then
    Exit;
  If GetWindowRect(H, Rc) Then
    SetWindowPos(H, HWND_TOPMOST, Rc.Left, Rc.Top, Rc.Right - Rc.Left,
      Rc.Bottom - Rc.Top, SWP_SHOWWINDOW)
End;

//------------------------------------------------------------------------------
// 去掉窗体的边框
//------------------------------------------------------------------------------

Procedure TForm2.BtnNoBorderClick(Sender: TObject);
Var
  WsStyle: Cardinal;
Begin
  If H = 0 Then
    Exit;
  WsStyle := GetWindowLong(H, GWL_STYLE);
  WsStyle := WsStyle And (Not WS_BORDER) And (Not WS_CAPTION);
  SetWindowLong(H, GWL_STYLE, WsStyle);
End;

//------------------------------------------------------------------------------
// 移动窗体
//------------------------------------------------------------------------------

Procedure TForm2.BtnMoveClick(Sender: TObject);
Var
  Dx, Dy: Integer;
  Rc: TRect;
Begin
  If H = 0 Then
    Exit;
  Dx := StrToIntDef(TxtDx.Text, 0);
  Dy := StrToIntDef(TxtDy.Text, 0);
  If GetWindowRect(H, Rc) Then
    MoveWindow(H, Rc.Left + Dx, Rc.Top + Dy, Rc.Right - Rc.Left,
      Rc.Bottom - Rc.Top, True)
End;

代码很简单,have fun.

我是DH,今天就说这么多.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
delphi获取汉字拼音首字母发布时间:2022-07-18
下一篇:
delphi获取网卡信息(支持多网卡)转发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap