Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ClientHeight/ClientWidth für WinAPI (https://www.delphipraxis.net/31571-clientheight-clientwidth-fuer-winapi.html)

Nonsense 21. Okt 2004 21:21

Re: ClientHeight/ClientWidth für WinAPI
 
Zitat:

Zitat von teebee
Ich hätte auch noch was:MSDN-Library durchsuchenAdjustWindowRect

Gruß, teebee

Danke. Ich probiere schon seit Tagen (wenn ich denn Zeit dafür finde), diese Funktion vernpnftig zum laufen zu kriegen. Aber es klappt nicht. Die Maße stimmen überhaupt nicht überein, viel zu klein. Und ich bin mir eigentlich sicher, dass ich es wie in der SDK beschrieben mache.

Delphi-Quellcode:
const
  WND_HEIGHT = 260;
  WND_WIDTH = 340;

[...]

  X := (GetSystemMetrics(SM_CXSCREEN) div 2) - (WND_WIDTH div 2);
  Y := (GetSystemMetrics(SM_CYSCREEN) div 2) - (WND_HEIGHT div 2);

  SetRect(WindowRect, X, Y, WND_WIDTH, WND_HEIGHT);
  AdjustWindowRectEx(WindowRect, dwStyle, False, dwExStyle);

  CreateWindowEx(dwExStyle,
                 CLASS_NAME,
                 WND_TITLE,
                 dwStyle,
                 WindowRect.Left,
                 WindowRect.Top,
                 WindowRect.Right,
                 WindowRect.Bottom,
                 0, 0,
                 hInstance,
                 nil);

(* Anmerkung: WND_HEIGHT / WND_WIDTH beieht sich auf die Maße des Client-Bereiches. Das Ergebnis von AdjustWindowRectEx ist viel kleiner, als die Konstanten *)
Hat jemand eine Idee?

teebee 22. Okt 2004 07:21

Re: ClientHeight/ClientWidth für WinAPI
 
Ändere mal das hier:
Delphi-Quellcode:
SetRect(WindowRect, X, Y, WND_WIDTH+X, WND_HEIGHT+Y);
Und dann das hier:
Delphi-Quellcode:
[...]
  CreateWindowEx(dwExStyle,
                 CLASS_NAME,
                 WND_TITLE,
                 dwStyle,
                 WindowRect.Left,
                 WindowRect.Top,
                 WindowRect.Right-WindowRect.Left, // hier die Breite
                 WindowRect.Bottom-WindowRect.Top, // und hier die Höhe
                 0, 0,
                 hInstance,
                 nil);
Du willst ja die Koordinaten von rechts und unten angeben, und die ergeben sich aus der Addition von Breite/Höhe zu links und oben.

Gruß, teebee

Nonsense 22. Okt 2004 08:37

Re: ClientHeight/ClientWidth für WinAPI
 
Danke! Klappt wunderbar.
:dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:16 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz