Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 

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)
Miniaturansicht angehängter Grafiken
winsight_161.jpeg  
Angehängte Dateien
Dateityp: exe project3__345.exe (402,5 KB, 17x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat