VS-Tipps & Tricks: Die Combobox im Property Fenster des Dialog Editors

Unscheinbar aber sehr effektiv zum Ändern von großen Dialogen ist die Combobox im Eigenschaftsfenster.
In den meisten Fällen steht in dieser Combobox nur der Name des Objektes, das ausgewählt ist und eine weitere Auswahl ist dann oft hier nicht möglich.

Editiert man jedoch einen Dialog, dann kann man mit dieser Combobox, sehr effektiv und schnell Controls gezielt auswählen. Besonders wenn man Controls übereinander legt weil diese ein oder ausgeblendet werden wird es schwierig diese Controls gezielt mit der Maus zu markieren.
Mit der Combobox kein Problem.
Die Reihenfolge in der Combobox ist die alphabetisch sortiert nach den Namen der Control IDs. Auch das erleichtert die Auswahl, wenn man ein Control direkt anhand seiner ID finden will. Hat man den Dialog nicht designed und will ein Control identifizieren, dass durch einen bestimmten Code gesteuert wird, ist das mit dieser Combobox ein Klax.

Auch wenn man die Maus nicht verwenden will kann man mit dieser Combobox schnell navigieren:
Alt+Eingabetaste, wählt das Eigenschaftsfenster, mit 3 x Tab oder 2 x Umschalt+Tab kommt man in die Combobox, die man dann mit den Cursor-Tasten, bzw. Alt+Pfeilrunter bedienen kann. Mit der Escape-Taste kommt man zurück in die Editoroberfläche.

Wie eine Gruppe von Radio-Buttons ein Programm aufhängen können

Auto-Radiobuttons (BS_AUTORADIO) sind als Standard in fast jedem Dialog zu finden. Das diese netten kleinen Buttons ein Programm dazubringen können sich aufzuhängen, ohne das unbedingt eigener Code im Spiel ist, kann man sich kaum vorstellen.
Aber es kann passieren.

Ein Regular in der Gruppe nntp://microsoft.public.de.vc berichtete dieses Problem mehrfach in der Gruppe. Letzten Endes trugen aber alle Ideen und Vorschläge zu keiner Lösung bei.

In einem Thread wurde dann ein Beispielprogramm veröffentlicht, bei dem mit einem simplen Klick auf einen Radiobutton das Programm in einer Endlosschleife gerät und sich aufhängt.

Die Ursache ist trivial. Eine Gruppe von Auto-Radio Buttons war nicht durch ein Control mit dem Stil WS_GROUP abgeschlossen worden. Solch einen Design Fehler im Dialog hat schon jeder mal gemacht und viele werden die folgende Ausgabe im Debug Fenster kennen: „Warning: skipping non-radio button in group.“

In diesem Fall kam nach der Gruppe Radio Buttons ein Tab-Control, dass den Stil WS_EX_CONTROLPARENT hat. Dieser Stil erlaubt es Dialoge und Controls zu schachteln. Gleichfalls führt dieser Stil dazu, das versucht wird die Gruppe von Radio-Buttons in den untergeordneten Feldern weiter zu führen. Leider waren in den entsprechenden Fenstern auch keine Controls mehr mit dem Stil WS_GROUP und irgendwie hat sich die Windows UI-API dann letzten Endes aufgehängt.

Behoben werden konnte dieser Stil einfach;

  • Entweder man führt ein (evtl. sogar unsichtbares) Static Control ein, direkt nach der Gruppe. Static-Controls werden automatisch mit dem WS_GROUP Stil versehen.
  • Oder man änderte die Z-Order, so dass auf die Radio-Button Gruppe ein anderes Control mit WS_GROUP Eigenschaften folgt.
  • Oder eines der Controls im Unterdialog hat den WS_GROUP Stil, was aber oft genug nicht dem eigentlich gewollten Design entspricht, dass sich die Gruppe in den Unterdialog fortsetzt.

Auch so simplen Warnungen in der Debugausgabe wie „Warning: skipping non-radio button in group.“ sollte man gezielt nachgehen. Manchmal haben heftige Probleme trivialste Ursachen ❗

Anmerkung: Das Beispielprogramm ist zwar noch VC6, aber das Problem liegt im Design der geschachtelten Fenster und der nicht abgeschlossenen Radio-Button Gruppe.

Wie unsere Kirchen und Gemeinden wieder öffentlich wahrgenommen werden!

Seit Jahren leiden viele Kirchen und Gemeinden unter der Ignoranz der Medien. Gott, Glaube und Kirche sind keine Themen öffentlichen Interesses. Dieses „Blatt“ hat sich nun schlagartig gewendet. Hier sind einige Tipps, wie Sie mit Ihrer Gemeinde ganz schnell in die Schlagzeilen geraten. Ihre Gemeinde wird garantiert wieder wahrgenommen, wenn Sie diese Checkliste im Hinterkopf behalten.

  • Räumen Sie gegenüber der Presse ein, dass Sie im Kindergottesdienst die biblische Schöpfungsgeschichte erzählt haben.
  • Bekennen Sie sich freimütig dazu, im Konfirmandenunterricht über das Buch Genesis gesprochen und Vergleiche zwischen Kreationismus und Evolutionstheorie angestellt haben. Schämen Sie sich nicht.
  • Lassen Sie ehrlich raus, dass Sie immer noch das „Vaterunser“ beten und noch nicht auf „Mutterunser“ umgestiegen sind.
  • Schreiben Sie im Gemeindeblatt, dass in ihren Gottesdiensten „Ausländer“ willkommen sind. Man wird Ihnen eine Schlagzeile widmen. Schreiben Sie indes, Sie würden sich um Menschen mit „Migrationshintergrund“ kümmern, wird keine Zeitung von Ihnen Notiz nehmen.
  • Berichten Sie öffentlich, dass Ihre Gemeinde einen „Missionar“ ausgesandt hat. Die Presse wird über Sie herfallen . Bitte nicht „Entwicklungshelfer“ schreiben. Das wird nie eine Meldung.
  • Veröffentlichen Sie auf Ihrer Internet-Seite ein Seminar zum Thema „Mit Moslems über den christlichen Glauben reden“. Weil Sie nicht im Vatikan wohnen und auch nicht über eine Schweizer Garde verfügen, sollten Sie am besten gleich untertauchen.
  • Bestehen Sie darauf, dass der neue Küster Ihrer Gemeinde keiner anderen Religion angehören darf als der christlichen. Sie bekommen eine Schlagzeile. Suchen Sie sich einen guten Anwalt und achten Sie auf Menschen, die Koffer vor ihrem Gemeindezentrum stehen lassen.
  • Erwähnen Sie beiläufig, dass Sie am Ende einer Sportübertragung in ihrem Gemeindezentrum nach dem Sieg der deutschen Mannschaft die Nationalhymne gesungen haben. Schließen Sie abends besser die Fensterläden.
  • Berichten Sie ganz entspannt, dass Sie an Ihrem Gemeindefest eine Mohrenkopfwurfmaschine eingesetzt haben. Bleiben Sie danach lieber ein paar Tage in Deckung.
  • Räumen Sie gegenüber der Presse reumütig ein, dass die Jungs beim Pfadfinderlager in Uniformen aufgetreten sind und dass sich die Betreuer am Ende des Lagers mit herzlichen Umarmungen von den Kindern verabschiedet haben. Morgen werden Ihnen die Reporter auflauern.

So kommen Sie mit Ihrer Gemeinde garantiert in die Zeitung. So einfach ist heute kirchliche Öffentlichkeitsarbeit. Seien Sie bewusst politisch unkorrekt, dann kommen Sie endlich bald ins Fernsehen.

– Jürgen Mette „Stiftung Marburger Medien“

Gefunden auf der Homepage von Arno Backhaus!

Installation von VC6 unter Vista

Es ist ein Anachronismus und ich weiß gar nicht warum ich das hier schreibe. 😉 Aber es gibt doch immer wieder Leute die Visual C++ 6.0 bzw. Visual Studio 6.0 auf Vista installieren wollen.

❗ Grundsätzlich rate ich jedem ab, für Neueintwicklungen VC6 weiterhin zu verwenden.
Dieser Compiler und diese IDE sind überaltert und VC2005 ist ein würdiger und wirklich guter Nachfolger. Was die Änderungen bzgl. Wizards etc. betrifft ist es reine Gewöhnungssache.

Nun aber gib es genug Legacy Code der evtl. einen Bugfix braucht. OK Also wie installiert man dann VC6 auf Vista? Bzw. Geht es überhaupt?
Ja! Es geht.

Wichtig ist, nur, dass man UAC für die Dauer der Installation am Besten komplett abstellt. Es genügt IMHO nicht nur das Setup als Admin zu starten. Das erkennt Vista sowie entsprechend und fordert dazu auf. Also bei mir spielte sich die Installation der Visual Studio 6.0 Enterprise Version in etwa so ab:

  • UAC abschalten (am einfachsten über die System-Steuerung) und den Rechner neu starten.
  • Nun unbedingt einen Account verwenden der lokaler Admin ist (Aber das war jedem klar, oder?)
  • VC6 Installation starten. Die nette  Meldung über bekannte Kompatibilitätsprobleme nehmen wir dankbar zur Kenntnis.
  • Jetzt wird evtl. die VM für Java aktualisiert und neu gestartet (was sonst).
  • Zwischendrin erfolgt noch mal eine Warnung über bekannte Kompatibilitätsprobleme die wir wieder gerne quittieren.
  • Nun dürfen wir wie gewohnt installieren. Man kann sich die Data Access Components übrigends sparen. Meistens sind sowieso schon neuere Versionen auf dem Rechner. Gleiches würde ich mit den SDK Tools machen. Diese alten Tools machen manchmal auch Ärger beim registrieren.
  • Irgendwann kommt manchmal noch eine Frage nach den JIT-Debugger  settings, am Besten auch die nicht verändern.
    Und wie gewohnt erfolgt ein Neustart der Maschine am Ende der Installation.
  • Danach VC6 SP6 installieren und Rechner neu starten (was sonst).
    Für SP5 muss man etwas hexen, aber es geht mit Tricks auch.
  • Danach UAC wieder einschalten, und es erfolgt der nächste Neustart 😉


Anmerkungen

  • Der Standard Pfad zum Anlegen der Projekt sollte natürlich nicht verwendet werden. Der liegt dämlicherweise ja unter C:\Program Files, aber ich gehe auch hier davon aus, dass dies logisch ist…
  • Beim ersten Start des Compilers und einiger Tools kommen wieder Meldungen über Kompatibilitätsprobleme (vcspawn.exe, rc.exe), diese schalten wir für immer aus.
  • Man sollte VC6 übrigends auch nicht nach VC2005 installieren. Andernfalls muss man VC2005 einer Reparaturinstallation unterziehen. Einige der Registrierungen für den Explorer werden sonst überschrieben und arbeiten nicht mehr korrekt. Aber das ist ja bei allen Installationen von mehreren VS Versionen schon so gewesen. Immer nacheinander installieren beginnend mit der ältesten Version!

Danach arbeitet VC6 ohne Murren. Wenn man möchte kann man für VC6 (devenv.exe) sogar manuell ein Vista Manifest geben, indem man die entsprechende devenv.exe.manifest Datei erzeugt. Nach Geschmack setzt man requireAdministrator oder asInvoker. Für bestimmte Fälle beim Debuggen bietet sich hier requireAdministrator an.