看MSDN,GetWindowRect的说明如下: BOOL WINAPI GetWindowRect( _In_ HWND hWnd, _Out_ LPRECT lpRect // 注意,没*号指针 ); BOOL WINAPI GetWindowPlacement( _In_ HWND hWnd, _Inout_ WINDOWPLACEMENT *lpwndpl // 注意,有*号指针,这里可能已经是双重指针 );
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;
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论