AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Über Handle Fenstergröße verändern
Thema durchsuchen
Ansicht
Themen-Optionen

Über Handle Fenstergröße verändern

Ein Thema von Xzeer · begonnen am 20. Sep 2007 · letzter Beitrag vom 20. Sep 2007
Antwort Antwort
Benutzerbild von Xzeer
Xzeer

Registriert seit: 6. Jul 2007
106 Beiträge
 
#1

Über Handle Fenstergröße verändern

  Alt 20. Sep 2007, 18:12
Hallo,

Nachdem ich nun so einigermaßen weiß, wie Handles funktionieren, habe ich noch eine Frage.

Kann ich über ein Handle die Fenstergröße ändern?

Als Beispiel:

Delphi-Quellcode:
procedure Bsp;
var
   window: hwnd;
begin
   window:=findwindow(nil, 'Dokumente') //der Explorer öffnet ja Standartmässig den Dokumente Ordner
   sendmessage(-> größe ändern <-);
end;
Wie kann ich das hinbekommen?
Marvin
Xzeer
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Über Handle Fenstergröße verändern

  Alt 20. Sep 2007, 18:22
MSDN-Library durchsuchenSetWindowPos

Wen du das Handle eines Fenster hast, kannst du damit fast alles machen
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Xzeer
Xzeer

Registriert seit: 6. Jul 2007
106 Beiträge
 
#3

Re: Über Handle Fenstergröße verändern

  Alt 20. Sep 2007, 18:39
ok, es klappt.

Ich hab es jetzt mal so gemacht:

Delphi-Quellcode:
procedure Bsp;
var
   window: hwnd;
begin
   window:=findwindow(nil, 'Dokumente') //der Explorer öffnet ja Standartmässig den Dokumente Ordner
   setwindowpos(window,hwnd_top,0,0,0,0,swp_showwindow);
end;
Das Fenster steht dann in der rechten oberen Ecke und ist sehr klein.

Wofür genau stehen eigentlich die 4 Zahlen, also ich glaube die ersten beiden sind die Koordinate der rechten oberen Ecke des Fensters und die zweiten beiden geben die größe des fensters an, oder?

Benutze ich den Befehl so richtig?
Marvin
Xzeer
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#4

Re: Über Handle Fenstergröße verändern

  Alt 20. Sep 2007, 20:08
Hallo,

Zitat von Leos-Studio:
window:=findwindow(nil, 'Dokumente') //der Explorer öffnet ja Standartmässig den Dokumente Ordner
1. Bei mir lautet der Name des Ordners 'Eigene Dateien'
2. Unter Windows<=98 war das nicht so
3. Kann das der User mit Angabe von '/e,PFAD' als Argument beim Start beliebig ändern
4. Schau Dir mal den Hinweis zu dem Begriff 'Standart' an

Fazit: Solltest Du Deine Anwendung für mehrere Benutzer zugänglich machen wollen, wirst Du mit einer Suche nach dem Explorer-Fenster über die Caption höchstwahrscheinlich kein Glück haben.
Lasse die Caption lieber aussen vor und gehe über die Klasse (unter WinXP bspw. 'ExploreWClass').

Zitat von Leos-Studio:
Wofür genau stehen eigentlich die 4 Zahlen, also ich glaube die ersten beiden sind die Koordinate der rechten oberen Ecke des Fensters und die zweiten beiden geben die größe des fensters an, oder?
Die Hilfe sagt dazu folgendes:
Zitat von Delphi-Hilfe:
X
[in] Specifies the new position of the left side of the window, in client coordinates.
Y
[in] Specifies the new position of the top of the window, in client coordinates.
cx
[in] Specifies the new width of the window, in pixels.
cy
[in] Specifies the new height of the window, in pixels.
Also hast Du wohl recht
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#5

Re: Über Handle Fenstergröße verändern

  Alt 20. Sep 2007, 20:16
Wenn du willst, dass es oben links in der Bildschirmecke ganz klein plaziert wird, dann machst dus richtig.

Allerdings solltest du über den letzten Parameter wissen:
Man kann folgende (nur die wichtigen) Flags setzen:
- SWP_NOACTIVATE -> Fenster bekommt keinen Focus
- SWP_NOMOVE -> Die Koordinatenparameter, also die ersten 2, werden ignoriert
- SWP_NOSIZE -> Die Größenangaben, also die zweiten 2, werden ignoriert

Die kannst du alle beliebig mit "or" verbinden.
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 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