• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi调用WINAPI时到底应该是指针还是结构体(注意是Delphi变量本身就是指针) ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

看MSDN,GetWindowRect的说明如下:

BOOL WINAPI GetWindowRect(
  _In_  HWND   hWnd,
  _Out_ LPRECT lpRect // 注意,没*号指针
);

BOOL WINAPI GetWindowPlacement(
  _In_    HWND            hWnd,
  _Inout_ WINDOWPLACEMENT *lpwndpl  // 注意,有*号指针,这里可能已经是双重指针
);

但是实际调用直接传递Rect结构体,而不是指针:
procedure TWinControl.UpdateBounds;
var
  ParentHandle: HWnd; // 4字节
  Rect: TRect; // 16字节
  WindowPlacement: TWindowPlacement; // 44字节
begin
  // 非最小化状态下,取得Win控件显示区域
  if IsIconic(FHandle) then // API
  begin
    WindowPlacement.Length := SizeOf(WindowPlacement);
    GetWindowPlacement(FHandle, @WindowPlacement); // API,传递的是指针
    Rect := WindowPlacement.rcNormalPosition;
  end else
    GetWindowRect(FHandle, Rect); // API,取得客户区,注意第二个参数是结构体本身,而不是结构体指针,在Delphi里直接使用
end;

 


 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi编译错误信息表(转载自万一博客)发布时间:2022-07-18
下一篇:
Delphi 封装(2)类的封装发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap