Standardmässig wird das Hinweisfenster welches von der Funktion TaskDialogIndirect erzeugt wird, ja zentriert auf dem Monitor dargestellt. Laut
MSDN gibt es bei den dwFlags aber die Option über das Flag
TDF_POSITION_RELATIVE_TO_WINDOW das Hinweisfenster zentriert über der aufrufenden Anwendung zu zentrieren. Leider funktioniert das bei mir nicht.
Source kann ich leider nicht viel zeigen da ich die TaskDialogkomponente von TMS verwende und die wohl etwas dagegen hätten wenn ich deren Source hier rein stelle.
Zitat von
MSDN:
TDF_POSITION_RELATIVE_TO_WINDOW
Indicates that the task dialog should be positioned (centered) relative to the window specified by hwndParent. If the flag is not supplied (or no hwndParent member is specified), the task dialog is positioned (centered) relative to the monitor.
Deklariert ist TDF_POSITION_RELATIVE_TO_WINDOW in der Komponente folgendermaßen:
Delphi-Quellcode:
const
TDF_POSITION_RELATIVE_TO_WINDOW = $1000;
Den Source von TMS habe ich entsprechend erweitert (das ShowMessage() ist da nur drinne weil ich sehen wollte ob die Codestelle überhaupt ausgeführt wird):
Delphi-Quellcode:
if FDlgPosition = dpOwnerFormCenter then
begin
//showmessage('test');
TaskDialogConfig.dwFlags := TaskDialogConfig.dwFlags or TDF_POSITION_RELATIVE_TO_WINDOW;
end;
So und jetzt meine Frage: Hat jemand schon mal erfolgreich dieses Flag gesetzt und kann mir sagen ob bzw. was ich falsch mache?