Klar geht das
Delphi-Quellcode:
function TMagnetic.SetFullWindowDrag(HWND: DWORD; ShowFullWindow: Boolean): Boolean;
// Aktiviert oder deaktiviert die Anzeige von Fensterinhalten während des
// Ziehens oder der Größenänderung von Anwendungsfenstern.
// Der Rückgabewert gibt Aufschluss darüber, ob der Aufruf zu einer Änderung
// gegenüber der vorherigen Einstellung geführt hat (True) oder nicht (False).
begin
// Bisherige Einstellung ermitteln:
result := SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, @lOldSetting, 0);
if result = false then
// Result := False;
// Der abfragende Aufruf war nicht erfolgreich
// (z.B. Windows 95 ohne "PLUS!"-Pack).
exit; // Rückgabewert bleibt False
// Eine Aktion ist nur dann notwendig, wenn sich der bisherige
// vom gewünschten Wert unterscheidet:
if Bool(lOldSetting) <> ShowFullWindow then
// Wert ändern und Erfolg prüfen:
result := SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, Abs(DWORD(ShowFullWindow)), nil,
SPIF_UPDATEINIFILE or SPIF_SENDWININICHANGE);
end;
mach mein TMagnetic wech dann sollte das funktionieren.
Zitat:
In WM_NCLBUTTONDOWN und Co. könnte man dann die Nachricht nicht an DefWindowProc() weiterleiten um somit den Windows-eigenen Drag-Drop-Prozess zu verhindern. Ob das auch die Option abfängt, über die Tastatur ein Fenster zu verschieben, wäre zu testen.
Sorry das ist schlichtweg falsch.
Delphi-Quellcode:
{$REGION 'WM_ENTERSIZEMOVE'}
WM_EXITSIZEMOVE:
begin
if FullDrag then
SKAERO_MagneticWindow.SetFullWindowDrag(MainApp.Handle, False);
end;
{$ENDREGION}
Delphi-Quellcode:
{$REGION 'WM_NCLBUTTONDOWN'}
WM_NCLBUTTONDOWN:
begin
IsMoving := TRUE;
if (wP = HTCAPTION) and FullDrag then
SKAERO_MagneticWindow.SetFullWindowDrag(MainApp.Handle, True);
end;
{$ENDREGION}
Zitat:
weil das ein unzuverlässiger Hack ist
Das hat nichts mit einem Hack zu tun.. ich verwende das schon seit Jahren und hatte keine Probleme.
Man muss es nur richtig machen.
Aber ja nebenbei du kannst es deaktivieren aber mit meiner Anwendung würde es wieder aktiviert.
Also eine Dauerhafte Möglichkeit das Auszuschalten wirst du nicht finden.
gruss