随笔 - 110  文章 - 28 评论 - 26 

留言簿(1)

随笔分类(103)

随笔档案(110)

文章分类(25)

文章档案(28)

新闻档案(3)

友情连接

  • 小蜜蜂
  • 马氏膏药网
  • 淋巴结肿大,淋巴结核,淋巴结炎 乳腺增生,小叶增生 颈椎病,腰椎病,腰间盘突出 马氏淋巴消炎贴,马氏增生散结贴,马氏关节肌肉贴
  • 黑客基地
  • 全球最大的黑客门户网站

最新随笔

积分与排名

  • 积分 - 146194
  • 排名 - 44

最新评论

阅读排行榜

评论排行榜

假设你的消息这样定义:  
  Const    
      WM_YOURMSG=WM_USER+100;  
  你的过程定义可以这样:  
        procedure   YourProc(var   MSG:TMsg);message   WM_YOURMSG;  
  这样,当你的窗口收到该消息时,将调用这个过程。  
  例如:  
   
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Classes,   Graphics,   Controls,   Forms,   Dialogs,  
      StdCtrls;  
  Const  
    WM_MINE=WM_USER+100;  
  type  
      TForm1   =   class(TForm)  
          Button1:   TButton;  
          procedure   Button1Click(Sender:   TObject);  
      private  
          {   Private   declarations   }  
          procedure   Mine(var   msg:TMSG);message   WM_MINE;  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.DFM}  
   
  procedure   TForm1.Mine(var   msg:   TMSG);  
  begin  
      Showmessage('OK');  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
  Sendmessage(handle,WM_MINE,0,0);  
  end;  
   
  end.  
  这个单元定义了一个消息,当按下按钮时,向自己窗口发送这个消息(当然,不一定发送到自己的窗口,处理消息的过程也可以在其他地方),然后弹出个对话框。这当然是多此一举,不过,只是为了说明使用方法。  
   
  至于想处理MOUSECLICK时的MOUSE位置和状态,你可以不处理ONCLICK事件,而在ONMOUSEDOWN事件里处理。这个事件提供的参数分别告诉了你  
  Sender:那一个按钮接收这个鼠标事件:  
  Shift:当前鼠标的按钮状态是什么样,其他键盘状态是什么样,我们一般用  
  if   Shift=[ssleft]来判断是否鼠标左键点击,有关方括号里的值,你可以查询DELPHI的在线帮助,关键字:TShiftState  
  Button:表明那一个鼠标键被按下,  
  X,Y:鼠标在接收这个鼠标事件时的位置,如果你需要的是屏幕的位置可以这样做:  
   
  procedure   TForm1.Button1MouseDown(Sender:   TObject;   Button:   TMouseButton;  
      Shift:   TShiftState;   X,   Y:   Integer);  
  var  
      CurrentPos:TPoint;  
  begin  
      if   shift=[ssRight]   then   begin  
      CurrentPos:=TButton(Sender).clientToScreen(point(x,y));  
      {或者,GetcursorPos(CurrentPos)}  
      Showmessage(format('X:%d,Y:%d',[CurrentPos.x,CurrentPos.y]));  
  end;  
  //这个过程将使你鼠标在按钮上点下时弹出对话框,标明当前的位置。  
  end;  
  ;  
  这样CurrentPos的X,Y就是当前屏幕的坐标。
posted on 2009-02-02 23:06 小叶子 阅读(4813) 评论(0)  编辑 收藏 引用 所属分类: 笔记
只有注册用户登录后才能发表评论。

笔记和文章,可能抄袭,只为学习,请原谅