Konstanten der Standard-Dialoge
-
Hallo zusammen,
ich hatte vor kurzen ja nachgefragt, wie man Standard-Dialoge (TOpenDialog, TSaveDialog usw.) mehrsprachig anzeigen kann. Dank der FAQ und akari (Danke dafür!) habe ich die Lösung nehmen können, die hier im Forum aufgezeigt wurde.
Über den Handle HWND habe ich nun verschiedene Items des Dialogs ändern können.
Den TOpenDialog habe ich komplett umsetzen können, dazu hatte ich im Netz die IDs zu den Items gefunden, die fest irgendwo definiert sind.Hier der Code:
//Konstanten der Standard-Dialoge #define IDFILEOFTYPETEXT 0x441 #define IDFILENAMETEXT 0x442 #define IDLOOKINTEXT 0x443 //Window-Handle für den Dialog und dessen Buttons holen HWND hDialog = GetParent(OpenDialog->Handle); HWND buttonOK = GetDlgItem(hDialog, ID_OK); HWND buttonCANCEL = GetDlgItem(hDialog, ID_CANCEL); HWND labelFILETYP = GetDlgItem(hDialog, IDFILEOFTYPETEXT); HWND labelFILENAME = GetDlgItem(hDialog, IDFILENAMETEXT); HWND labelLOOKIN = GetDlgItem(hDialog, IDLOOKINTEXT); if(... wenn Englisch verwendet werden soll...) { SetWindowText(buttonOK, "OK"); SetWindowText(buttonCANCEL, "Abort"); SetWindowText(hDialog, "Open Data"); SetWindowText(labelFILETYP, "File type:"); SetWindowText(labelFILENAME, "File name:"); SetWindowText(labelLOOKIN, "Search in:"); }Ich habe nun das Problem, dass ich mir für die anderen Dialoge wie SaveDialog und vor allem den PrintDialog die entsprechenden Konstanten der DlgItems fehlen.
Hat hier jemand eine Referenz? Oder kann mir einer sagen, wie ich auch ohne diese ID das entsprechende Item ansprechen kann?
Vielen Dank für die Hilfe.
Gruß
-
Man kommt nicht an alle Dialogitems bei allen Dialogen ran. Das in der FAQ genannte Verfahren ist eher eine Krücke. Gerade bei den Print-Dialogen und TSaveDialog bekommst du nicht alles übersetzt.
Evtl. gibt es irgendeine WIN-API-Lösung mit der du die Sprache anpassen kannst. Frag doch einfach mal im entsprechenden Forum.