Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Fremdes Fenster an Größenänderung hindern (https://www.delphipraxis.net/98599-fremdes-fenster-groessenaenderung-hindern.html)

eisblock 29. Aug 2007 17:06


Fremdes Fenster an Größenänderung hindern
 
Hallo,

ich habe nochmal eine Frage:
ich habe gerade ein fremdes Fenster per SetWindowPos in seiner Größe und Position verändert.
Wie kann ich nun verhindern, dass es vom externen Programm selbst wieder verändert wird?
SWP_NOSENDCHANGING funktioniert jedenfalls nicht und ich habe zwar etwas über
WM_MINMAXINFO gelesen, verstehe es aber nicht. Geht es damit?

Gruß,
jr

_frank_ 29. Aug 2007 17:35

Re: Fremdes Fenster an Größenänderung hindern
 
zumindest eigene Forms kann man mithilfe von WM_GetMinMaxInfo daran hindern, bestimmte abmessungen zu über-/unterschreiten.

für eigenes fenster:
Delphi-Quellcode:
procedure WMGetMinMaxInfo(var Msg: TMessage); Message WM_GETMINMAXINFO;
...
Procedure TForm_DFMMain.WMGetMinMaxInfo(Var Msg: TMessage);
Begin
  PMinMaxInfo(Msg.lParam)^.ptMinTrackSize:= Point(Main_MinWidth, Main_MinHeight);
End;
Wenn du die wndproc des fremden fensters hooken kannst sollte das auch dafür funktionieren.
die windowproc solltest du mit hilfe von MSDN-Library durchsuchenSetWindowLong+GWL_WNDPROC setzen können (nicht vergessen, die rückgabe zu sichern um die alte wndproc aufrufen zu können). Leider existiert eine Einschränkung für NT-basierte Systeme (siehe MSDN)...vielleicht lässt sich diese irgendwie umgehen...

HTH Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:28 Uhr.

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