AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Ich finde keine ChildHandles beim TSaveDialog ...
Thema durchsuchen
Ansicht
Themen-Optionen

Ich finde keine ChildHandles beim TSaveDialog ...

Ein Thema von FriFra · begonnen am 19. Aug 2005 · letzter Beitrag vom 1. Mai 2006
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#23

Re: Ich finde keine ChildHandles beim TSaveDialog ...

  Alt 22. Apr 2006, 10:13
Ist schon pracktisch solch ein Thema zu finden, welches gleich in doppelter Hinsicht passt

eigentlich wollte ich ja erst sowas sagen,
Delphi-Quellcode:
Ich würde mal versuchen rauszubekommen, wie das z.B. Notepad macht, denn der hat auch seine eigene Beschriftung und ohne das es flackert.

Bei meinem Notepad steht [b]Dateiname[/b] und [b]Dateityp[/b], aber in den originalen Open-/Save-Dialogen steht bei mir [b]Objektname[/b] und [b]Objekttyp[/b] (im SaveDialog allerdings [b]Dateityp[/b] :gruebel: )
aber inzwischen hat sich hier einiges geändert, bei mir funktionier das mit dem Übersetzen auch ganz gut und ich benötige dafür nur eine Zeile ^^
SendMessageW(GetDlgItem(hWnd, 1), WM_SETTEXT, 0, Integer(PChar('abc123'))); Im Brunde bräuchtet ihr euch nur in den ExplorerHook des Dialogs einschalten, bei Msg = WM_NOTIFY und POFNotifyExW(LParam)^.hdr.code = CDN_INITDONE.
Oder, wenn's reicht ins onShow-Ereignis (wird über's ExplorerHook aufgerufen).

Ich persönlich hab hier meinen eigenen ExplorerHook, daher isses wohl etwas einfacher



Zu dem Handle-Problem:
Dat hab'sch aus'm MSDN - das über GetOpenFileName/GetSaveFileName-Fenster enthält seit Win2K/NT vermutlich sowas wie ein Explorer-Fenster, welches wohl jetzt die WindowsMessages an den ExplorerHook versendet, muß also erst das Handle auf das Dialog-Fenster geholt werden.
Zitat von MSDN:
[in] Handle to the child dialog box of the Open or Save As dialog box. Use the GetParent function to get the handle to the Open or Save As dialog box.
Luckie hat das inzwischen auch schon "irgendwie" mitbekommen und holt sich jetzt perhWnd := GetParent(hWnd); das richtige Fenster, mit den gesuchten Controls, herran.



Ach ja, hab auch etwas gebraucht und diese Fenster bisher entziffert.
(bis auf 0 und 1088 ... keine Ahnug was das ist)
Code:
#32770 DialogName
0        ?
1      Öffnen-Button
2      Abbrechen-Button
1038   Hilfe-Button
1040   Schreibgeschützt-CheckBox
1088     ?
1089   Typ-Label
1090   Dateiname-Label
1091   SuchenIn-Label
1120   Datei-ListBox
1136   Typ-Edit
1137   SuchenIn-ComboBox
1148   Dateiname-Edit
1184   PlacesBar
Und Luckie ... WinSight hilft irgendwie auch nicht viel weiter
bei mir hat das nur die beiden SuchenIn-Controls entdeckt
(hab dann einfach mal in 'ner Schleife eines per GetDlgItem testen lassen)
Angehängte Grafiken
Dateityp: jpeg winsight_161.jpeg (122,8 KB, 36x aufgerufen)
Angehängte Dateien
Dateityp: exe project3__345.exe (402,5 KB, 17x aufgerufen)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


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 06:22 Uhr.
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