HWND句柄怎么用?

sesea 2008-08-26 02:51:20
写一DLL的函数,调用时传入一hwnd句柄,函数的功能是弹出一子窗口。
我弹出一模太窗口实现了,但hwnd句柄没有用到。
不知道这hwnd句柄该怎么去使用,另外我想子窗口只覆盖父窗口的工作区域该通过句柄获取?
...全文
424 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sesea 2008-08-26
  • 打赏
  • 举报
回复
非常感谢!!!
yuqianyi1974 2008-08-26
  • 打赏
  • 举报
回复

procedure TForm1.Button1Click(Sender: TObject);
var
rect:Trect;
h: Thandle;
begin
h:=GetParent(button1.Handle);
getwindowrect(h,rect);
showmessage(inttostr(rect.Right-rect.Left)); //窗体的宽度
end;
sesea 2008-08-26
  • 打赏
  • 举报
回复
明白了,谢谢。
还有个问题,怎么通过句柄获取父窗口的宽和高?
yuqianyi1974 2008-08-26
  • 打赏
  • 举报
回复
procedure ShowTest(AHandle: HWND);stdcall;
var
f:TForm3;
begin
Application.Handle:= AHandle ;
f:=TForm3.Create(Application);
f.WebBrowser1.Navigate('http://www.baidu.com');
f.ShowModal;
f.Free; //f.show的时候不能加这句,你已经释放了当然一闪过了
end;
sesea 2008-08-26
  • 打赏
  • 举报
回复
procedure ShowTest(AHandle: HWND);stdcall;
var
f:TForm3;
begin
Application.Handle:= AHandle ;
f:=TForm3.Create(Application);
f.WebBrowser1.Navigate('http://www.baidu.com');
f.ShowModal;
f.Free;
end;

这是我写的函数
f.ShowModal;//如果改为f.Show,子窗口,一闪而过。
如果添加f.ParentWindow:= AHandle;,设置子窗口的父窗口,子窗口弹出后,父窗口为激活状态,任何操作都没反应。

yuqianyi1974 2008-08-26
  • 打赏
  • 举报
回复
form1.handle
application.handle
handle 就是hwnd

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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