Um den Bildschirm meines PDAs zu drehen (Beschleunigungssensor löst einen Interrupt aus) möchte ich das Fenster, welches aktuell im Vordergrund steht als erstes drehen, danach erst alle anderen geöffneten Fenster (hoffe, das geht, ohne dass der User das Drehen der Hintergrundfenster mitbekommt, da lange Laufzeit).
Mit der Funktion GetForegroundWindow() und GetWindowText() ermittle ich den Namen des aktiven Fensters.
Das Fenster ist als Dialog geöffnet. Nun möchte ich die Hochkant-Variable des Dialogs anpsrechen, somit wird ein Drehen verursacht.
Originalcode ist zum Beispiel für das Fenster/Form "Find" folgendermaßen (der code zum Drehen steht in der letzten Zeile):
//*** dies nur zur Info, wie FindDialog angelegt und geöffnet ist ***
Find FindDialog; //Definition des Find-Dialogs
...
FindDialog.Activate();
FindDialog.Show();
//*** Ende Info, wie FindDialog angelegt und geöffnet ist ***
...
FindDialog.Hochkant = this.Hochkant;
Das "Find" möchte ich nun durch den String von GetWindowText() ersetzen.
Hier der Versuch, einen Dialognamen mittels String anzusprechen:
if (GetWindowText((int)hWnd, Buff, nChars) > 0)
{
(Buff.ToString() + "Dialog").Hochkant = this.Hochkant;
}
Dieser Versuch führt zum Compilerfehler:' "string" enthält keine Definition für "Hochkant" und es konnte keine Erweiterungsmethode...'
Weiß jemand die richtige Syntax hierfür?
Ich könnte auch alle Dialognamen evtl. mit switch-case durchlaufen, das wäre aber Laufzeittechnisch nicht gut.
Viele Grüße
Claudia (flexray)
Also du versuchst hier einem String ein Property namens "Hochkant" abzufragen. Praktisch sowas
string s = "irgendein Text";
s.Hochkant = this.Hochkant;
Klar dass das nicht geht.
Das "Find" möchte ich nun durch den String von GetWindowText() ersetzen.
Das heißt was? Was ist Find? Und wie kann man es durch einen String ersetzen?
Du hast da noch ein bisschen Klärungsbedarf an dem was du haben willst 😃
Im ersten Codeblock scheint Find eine Klasse (Fenster?) zu sein, die ein Property namens Hochkant hat.
Im zweiten kapier ich gar nix mehr. Du willst also die Eigenschaft Hochkant des Fensters setzen das so heißt wie hWnd, gefolgt von "Dialog"?
Hi, du brauchst natuerlich die zum Fenstertext zugehoerige Instanz. Ich kenne mich in der API nicht aus, doch falls es dort Methoden gibt, die dir zu einem Fenstertitel oder Handle ein Objekt zurueck geben, dann kannst du das ja vielleicht auf Find oder sonst eine Basis von Find casten.
MfG
Markus
Hallo flexray,
siehe [FAQ] Variablennamen zur Laufzeit zusammensetzen.
Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1 und 1.1.
herbivore