AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Windows API - Fensterklassen, Dialogressource und Custom Controls
Thema durchsuchen
Ansicht
Themen-Optionen

Windows API - Fensterklassen, Dialogressource und Custom Controls

Ein Thema von panch · begonnen am 30. Dez 2013
Antwort Antwort
panch

Registriert seit: 9. Mär 2010
Ort: Herrsching am Ammersee
7 Beiträge
 
Delphi 2010 Professional
 
#1

Windows API - Fensterklassen, Dialogressource und Custom Controls

  Alt 30. Dez 2013, 08:22
Guten Morgen allerseits,

vielleicht ist ja jemand hier, der sich mit der Windows API ein wenig besser als ich auskennt und mir helfen kann. Hier die Eingangsgrößen:

- Delphi 2010
- normale Ressourcen-DLL mit etlichen Dialogfeldern

Es geht um folgendes:

Aus einer DLL will ich eine Dialogressource laden und anzeigen. Das funktioniert soweit mittels CreateDialogIndirectParam (FindResource, LoadResource, LockResource etc) recht gut. Ursprünglich hatte ich CreateDialog verwendet, doch einige Dialogfelder, die mit dem Stil WS_CHILD definiert waren (als Tabs gedacht), wurden nicht angezeigt. Das hab ich inzwischen durch Änderung des Dialogstils soweit erfolgreich verändert. Dummerweise gibt's aber noch weitere Dialogfelder, die nicht angezeigt werden. Diese Dialogfelder enthalten vom Hersteller definierte Custom Controls (in aller Regel statische Controls), deren Fensterklassen auf meinem Rechner logischerweise nicht existieren und daher auch nicht registriert sind. So weit, so gut.

Nun habe ich zum Ausprobieren eine der selbstdefinierten Fensterklassen definiert - quasi als Fake - und mit RegisterClassEx auch erfolgreich registriert (das sagt mir zumindest eine Prüfung mittels GetClassInfoEx. Auch GetLastError ist brav und gibt mir immer nur die gewünschte Null, d.h. kein Fehler, zurück, so daß eigentlich alles bestens sein sollte. Ist es aber nicht, denn die betreffenden Dialogfelder bleiben immer noch im Nirwana meines Rechners verborgen.

Hat dazu vielleicht jemand eine Idee? Das wäre toll. Das Handle, das von CreateDialogIndirectParam zurückgeliefert wird, hat in diesen Fällen den Wert 0, was auf einen Fehler hindeutet, ein anschließender Aufruf von GetLastError liefert allerdings ebenfalls den Wert 0, was darauf hinweist, daß es eben keinen Fehler gab. In den Tiefen des Internet hab ich zu diesem Widerspruch leider nichts gefunden.

Wozu das Ganze? Ich will die Dialogfelder ohne weitere Funktion anzeigen können, damit man Position und Darstellung der Control-Texte eines solchen Dialogfeldes prüfen kann, ohne dabei lang in der betreffenden Applikation zur Laufzeit nach dem Dialogfeld und der Situation, in der es geöffnet werden kann, suchen zu müssen.

Vielen Dank schon mal vorab.

Viele Grüße
Franz
Du hast den Farbfilm vergessen, mein Michael
nun glaubt uns kein Mensch wie schön's hier war-haha-haha
Du hast den Farbfilm vergessen, bei meiner Seel'
alles blau und weiß und grün und später nicht mehr wahr (Nina Hagen, 1974)
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz