| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Position des GetSaveFileName-Fensters (853 mal gelesen)
|
wwwilli Mitglied Ingenieur
 
 Beiträge: 410 Registriert: 21.03.2006 ACAD MAP 3D 2012. VestraCAD. Win 7 64bit SP 1, FD 100 GB, Xeon 2,8 GHz, 12 GB.
|
erstellt am: 08. Nov. 2006 10:07 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe in Makros zum Dateispeichern die API-Funktion "GetSaveFileName" verwendet. Das funktioniert auch soweit sehr gut. Aber das Fenster mit dem Dialogfeld hängt bei erstmaligem Aufruf immer links oben in der Bildschirm-Ecke, während meine anderen Meldungen (MsgBox etc) in der Bildschirmmitte auftauchen. Das sieht etwas merkwürdig aus. Kann man die Position von "GetSaveFileName" beeinflussen? Ich finde keinen Parameter dazu. MfG, wwwilli Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 08. Nov. 2006 17:03 <-- editieren / zitieren --> Unities abgeben:          Nur für wwwilli
Hallo Willi, das gibst wohl auch eine API
Code: Declare Function SetWindowPos& Lib "user32" (ByVal hwnd&, ByVal WndInsertafter&, ByVal x&, ByVal y&, ByVal CX&, ByVal CY&, ByVal wFlags&)
Schwierig wird es wohl den Fensterhandle (hwnd) zu bekommen. Da gäbe es auch noch eine API "FindWindow" (oder so).Ein weiteres Problem wäre noch das in dem Moment wo das Öffnen Fenster auf ist die Kontrolle von VB an das Kontroll abgegeben wird. Somit wird der COde in VB solange unterbrochen wie das Fenster auf ist. Es gibt da auch einen Workaround mit einen Timer. Der wird angestossen bevor der Dialog kommt um ihn dann zu positionieren. VBA hat aber keinen Timer so das du da mindestens auf VB angewiesen bist. Ich habe mal (Suche verwenden) ein OCX hier ins Forum gestellt das du verwenden könnest. So sollest aber abwägen ob ein VBA Script so viel können muss wie eine Applikation. Stelli ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
wwwilli Mitglied Ingenieur
 
 Beiträge: 410 Registriert: 21.03.2006 ACAD MAP 3D 2012. VestraCAD. Win 7 64bit SP 1, FD 100 GB, Xeon 2,8 GHz, 12 GB.
|
erstellt am: 09. Nov. 2006 22:54 <-- editieren / zitieren --> Unities abgeben:         
Hallo, vielen Dank. Merkwürdigerweise kann man das Fenster ja verschieben, und dann bleibt diese Position bis zum nächsten Anruf erhalten. Da müssen doch x und y gespeichert und irgendwie zu beeinflussen sein. Aber ich glaube, bei Deinem Vorschlag und seinen Nebenwirkungen enden meine Bemühungen, das geht mir zu weit. Ich dachte, es gäbe vielleicht irgendwo ein einfaches Häkchen für "zentriert", aber wenn das nicht so ist, dann ist auch gut. MfG, wwwilli Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |