谢谢您的答复,还有几个问题:<br>1.方法一我早试过,但不知如何使用鼠标右键,好象屏蔽了!<br>2.方法二中的Handled:=true;表示什么意思,有何作用!<br><br>3.方法二中的((GetKeyState(vk_CONTROL) < 0)<br> //检测“Ctrl”键是否按下<br>------- 有何作用,放在那儿好象有错!<br><br>4.下面的程序为何,当右键点击后就无法移动了,把showmessage该成beep就好了,我该怎么做!<br><br><br><br>type<br> TForm1 = class(TForm)<br> procedure FormCreate(Sender: TObject);<br> private<br> { Private declarations }<br> public<br> procedure AppMessage(var Msg:TMsg;var Handled:Boolean);<br> { Public declarations }<br> end;<br><br>var<br> Form1: TForm1;<br><br>implementation<br>procedure tform1.AppMessage(var Msg:TMsg;var Handled:Boolean);<br>begin<br><br> if (Msg.message=WM_LButtonDown) and<br> (DefWindowProc(Handle, WM_NCHitTest, 0, GetMessagePos)=HTClient) then<br> begin<br> SendMessage(Handle, WM_NCLButtonDown, HTCaption, GetMessagePos);<br> Handled:=true;<br> end<br> else<br> if (Msg.message=WM_rButtonDown) and<br> (DefWindowProc(Handle, WM_NCHitTest, 0, GetMessagePos)=HTClient)<br> then<br> begin<br> showmessage('aa');<br> Handled:=true;<br> end;<br><br>end;<br>{$R *.dfm}<br><br>procedure TForm1.FormCreate(Sender: TObject);<br>begin<br>Application.OnMessage:=AppMessage;<br>end;<br><br>end.<br>