zoukankan      html  css  js  c++  java
  • delphi向另一程序窗口某处发送鼠标事件所用的工具

    unit Unit2;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;

    type
      TForm2 = class(TForm)
        Timer1: TTimer;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Label4: TLabel;
        Label5: TLabel;
        Label6: TLabel;
        Label7: TLabel;
        Label8: TLabel;
        Label9: TLabel;
        Label10: TLabel;
        Label11: TLabel;
        Label12: TLabel;
        procedure Timer1Timer(Sender: TObject);

      private
        { Private declarations }
      public
        { Public declarations }
        selectr:trect;          //注意这里定义为保存选定窗体的左上角
      end;

    var
      Form2: TForm2;

    implementation

    {$R *.dfm}


    procedure TForm2.Timer1Timer(Sender: TObject);

    var
      p: TPoint;
      h: HWND;
      r:trect;
    begin
      GetCursorPos(p);
      label6.Caption:=format('x: %d, y: %d',[p.x,p.y]);  //鼠标在屏幕绝对位置
      h := WindowFromPoint(p);
      GetWindowRect(h,r);//得到窗口的左上角坐标

       if GetAsyncKeyState(VK_LButton)<>0 then  //按下鼠标左键,记下所选的窗体左上角
       begin
        selectr:=r;
        label11.Caption:=format('x: %d, y: %d',[r.left,r.top]);
       end;

      label4.Caption:=format('x: %d, y: %d',[r.left,r.top]); //当前鼠标位置窗体的左上角
      label8.Caption:=format('x: %d, y: %d',[p.x-selectr.left,p.y-selectr.top]);
      //label8内为发送鼠标事件所用数据
      Windows.ScreenToClient(h, p);
      label1.Caption:=format('x: %d, y: %d',[p.X,p.y]);//鼠标在窗口里的相对位置坐标

    end;

    end.

    http://cy03wqh.blog.163.com/blog/static/3678030220108592514544/

  • 相关阅读:
    [Noi2011]阿狸的打字机
    Bzoj3530: [Sdoi2014]数数
    Bzoj2037: [Sdoi2008]Sue的小球
    Bzoj4869: [Shoi2017]相逢是问候
    Bzoj1899: [Zjoi2004]Lunch 午餐
    Bzoj3884: 上帝与集合的正确用法
    UVA10692:Huge Mods
    Bzoj1009: [HNOI2008]GT考试
    Bzoj1212: [HNOI2004]L语言
    【国家集训队2012】tree(伍一鸣)
  • 原文地址:https://www.cnblogs.com/sunsoft/p/1967563.html
Copyright © 2011-2022 走看看