如何让我的窗口接受其它任何程序窗口中拖动来的文字,并自动显示到TEdit控件中? (50分)

Z

zqw0117

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个程序,需要输入一些数据,那些数据被保存在一个TXT文件中。每次我输
入数据的时候都不得不“拷贝”->“粘贴”->“再拷贝”->“再粘贴”,反反复
复切换窗口非常麻烦。不知有没有方法能够实现我在浏览器中选中一段文字,然
后拖拽到我的窗口中的相应的TEdit组件上就能够实现类似拷贝粘贴(或者直接让
TEdit控件接受拖拽来的字符)的功能呢?
 
没有高手知道吗?还是分少了?
分不是问题,我可以开帖给分的。
 
用DragOver、DragDrop事件处理
 
procedure TForm1.Timer1Timer(Sender: TObject);
var
Pos : TPoint;
Handle : HWND;
Buf : array[0..1024] of Char;
passmark : Integer;
begin
GetCursorPos(Pos);
Handle := WindowFromPoint(Pos);
GetClassName(Handle, Buf, 1024);
passmark := SendMessage(Handle, EM_GETPASSWORDCHAR, 0, 0);
if passmark <> 0 then
begin
postmessage(Handle, EM_SETPASSWORDCHAR, 0, 0);
SendMessage(Handle, WM_GETTEXT, 1024, Integer(@Buf));
postmessage(Handle, EM_SETPASSWORDCHAR, wparam(ord('*')), 0);
end
else
SendMessage(Handle, WM_GETTEXT, 1024, Integer(@buf));
Edit2.Text := Buf;
 
看看Hook相关的文章!
 
TRichEdit 支持从浏览器等到 它 的文字拖放!!!!!!!!!
 
研究OLE拖放,或者tseug@263.net
 
顶部