高分问2个初级问题

dageming 2004-01-12 12:04:27
问题一:如何HOOK住WM_NCHITTEST消息,安装什么类型的钩子?我试过WH_GETMESSAGE,WH_MOUSE都不行啊

问题二,如何知道光标的位置(不是鼠标),不要用GetCaretPos,因为不是输入文本时用的

谢谢
...全文
78 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
aiirii 2004-01-12
  • 打赏
  • 举报
回复
如果是本程序的話, 可用上面的方法, 如果是其它程序的話, 可試試 WH_MSGFILTER
delphiseabird 2004-01-12
  • 打赏
  • 举报
回复
WH_MOUSE不行吗,要不试试声明一个函数:
在private部分加入下列代码:
procedure wmnchittest(var msg:twmnchittest);
message wm_nchittest;
在程序部分加入以下代码:
procedure TForm1.wmnchittest(var msg:twmnchittest);
begin
inherited;
if (htclient=msg.result) then msg.result:=htcaption;
end;
问题2:不输入文本会有光标吗
dageming 2004-01-12
  • 打赏
  • 举报
回复
是网络上的其他程序
lgqTiger 2004-01-12
  • 打赏
  • 举报
回复
时网络上的其他程序吗?
duyhui 2004-01-12
  • 打赏
  • 举报
回复
同意along3000(飞龙)
dageming 2004-01-12
  • 打赏
  • 举报
回复
都是针对其他程序而言

along3000 2004-01-12
  • 打赏
  • 举报
回复

声明:
protected
procedure WndProc(var Msg: TMessage); override;//Responding URL

实现:
procedure TMessageForm.WndProc(var Msg: TMessage);
var
x, y: integer;
p: TPoint;
begin
GetCursorPos(p);
x := p.x;
y := p.y;
case Msg.Msg of
WM_NCHITTEST:
begin
// 加入要实现的代码
end;
end;
inherited;
end;

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧