Inode verdoppelt…
…österreichweit die Transfervolumen aller xDSL@work und xDSL@home Anbindungen, ohne die monatlichen Gebühren zu erhöhen. Die Aktion gilt für Einsteiger und für bestehende Kunden, bei denen das Upgrade automatisch kostenfrei durchgeführt wird.
Prüfen, ob die HTML-Help installiert ist
In heutigen Applikationen möchte man die Online-Hilfe oft nicht im klassischen
WINHELP-Format realisieren, sondern als neue HTML-Help.
Wenn man sich die Microsoft-Dokumentation zur HTML Help anschaut, so ist diese aber eher etwas verwirrend, was den Aufruf aus der Applikation heraus betrifft.
Zwar hat sich MS bemüht, den Umstieg von Winhelp möglichst einfach zu gestalten, indem das HtmlHelp() – Kommando dem WinHelp() Kommando syntaktisch gleicht, das Ganze ist aber trotzdem nicht einfach zu implementieren, denn insbesondere das Errorhandling scheint etwas kompliziert zu sein:
Zuallererst benötigt man den HTMLhelp-Library und header files, welche im HTML-Help Workshop integriert sind, welcher hier erhältlich ist.
Als nächstes kopiert man die library und das header-file ins Lib- bzw. Include-Verzeichnis von Visual Studio.
Wer glaubt, damit wäre es getan, irrt leider. Zur korrekten Verwendung von HTML Help muss auch noch die Struktur HH_LAST_ERROR
definiert werden, da diese scheinbar nicht in der htmlhelp.h
definiert wurde.
Nun stellt sich das nächste Problem: Wie findet man überhaupt heraus, ob HTML-Help überhaupt installiert ist? Unter Win 95 bzw. NT 4.0 kann man standardmäßig nicht von einer installierten HTML-Help ausgehen, da diese Betriebssystemversionen standardmäßig noch keinen IE4 oder höher beinhalten, welcher als erstes HTML-Help einführt. Führt man seine Applikation auf einem dieser Zielsysteme aus, so kommt eine Fehlermeldung, die besagt, dass eine DLL nicht gefunden werden konnte.
Um den Benutzer nicht durch solch kryptische Meldungen zu verunsichern, sollte man also auf Vorhandensein der HTML-Help prüfen und, falls nicht vorhanden, den Benutzer darauf hinweisen, dass IE 4.0 oder höher zu installieren ist (Übrigens scheint das Ganze mit 100%iger Sicherheit nur bei einer Vollinstallation des IE mitinstalliert zu werden). Die Identifikation von HTML-Help funktioniert nur mittels des Prüfens auf Vorhandensein der CLSID {ADB880A6-D8FF-11CF-9377-00AA003B7A11}
.
Sollte die HTML-Help nun zwar vorhanden sein, aber nicht gestartet werden können, so ist die entsprechende Fehlermeldung auszulesen und dem Benutzer auszugeben.
Auch dies ist leider kein allzu einfaches Unterfangen, da der Fehlerstring, anders als bei normalen C-Funktionen vom Typ BSTR ist. Um das Handling dieses Wide-character strings zu vereinfachen, verwenden wir, falls C++ zum Einsatz kommt, die Klasse _bstr_t, welche die Speicherverwaltung und Stringkonvertierung für die Ausgabe für uns übernimmt.
Ich habe hier die wichtigsten Funktionen zusammengefasst, die benötigt werden, um
die HTML-Help ordnungsgemäß verwenden zu können. Am Einfachsten ruft man sie beim Erhalt der WM_HELP-Nachricht in seiner Window-Dispatcher procedure auf, um sie beim Druck auf F1 anzeigen zu können.
Hier nun mein Code-snippet:
gameboy musik mini-tour
ich möchte hier ebenfalls noch per copy paste auf eine mini-tour des gameboymusicclubs hinweisen:
19.11. gbmc live im flex im rahmen vom subotron
18.11. gbmc live im KAPU, Linz
17.11. gbmc presents: laridae.net
21h: gbmc open
22:30h: laridae-labelpräsention
live: red.chamber (wien), firnwald (trostberg/D), photophob (graz), schaua (wien)
dj: firnwald, red.chamber, schaua
visuals: orjo, mingo
rhiz, eintritt frei
dot.matrix @ Big Brother Awards Gala 2005
Where: Theater Rabenhof
Rabengasse 3, 1030 Vienna, Austria / Europe
When: 2005-10-25 21:00 (GMT +01:00)
What: chiptunes & melodies
Wherewith: gameboy
More Information: big brother awards official site
ENTRY FREE
also, ab zur big brother awards gala und dot.matrix hören!
latest photos gbmc @ rhiz (6.10.2005)
digitale Gameboy Klänge, stimmige ms20 und edelmetallische akustische Gitarren abgelichtet in 1600 asa (Farbe) meist 50mm. hier bitte in unsortierter Reihenfolge
newq, weißt du wie die nummer heißt?
rocking!
gbmc @ rhiz am Donnerstag 6. 10. 2005
wiedermal findet diesen donnerstag (6. 10. 2005) der gameboy music club im rhiz statt.
der Spaß beginnt um 21:00, bis 23:00 wird live gameboymusik gespielt, ab 23:00 live: herbert weixelbaum, michael suszynski, LFE, rene mühlberger, raffael sas, franz (hurricane) reisinger, schaua, u.a.
dj: tj tesco, visuals: mingo.tv featuring decaf gürtel
eintritt (wie immer) frei
Quake 4 GONE GOLD!
For all the doubters out there thinking Quake 4 would not hit its mid-October release date, fear no more as Activision just let us know that the game has gone gold and is off to manufacturing. The PC version of the game will be shipping to stores October 18.
LifeProfit Inc. sorgt sich um Ihr Blühen.
na endlich mal wieder interessantere spam, abseits von “h*rny housewives”, “interracial gymnast donkey s*x” usw…
LifeProfit Inc. kann Ihnen helfen, Ihre Traume zu zwingen, sich, bekommend das monatliche Gehalt, das das Internet einwirkt, zu verwirklichen.
Um mit LifeProfit Inc. zu arbeiten, brauchen:
? Ein Bürger Deutschlands zu sein
? das Vorhandensein der Rechnung in der Bank
? die Vereinigung des Computers zum Internet
? ist ein wenig es Ihre freie ZeitWie es arbeitet:
Arbeitend für uns wie die Bezahlung, Die den Manager bearbeitet, werden Sie Teil Aus der neuen Tendenz im weltumfassenden Banksystem. Die Pflichten Die Lage ist einfach, und das Einkommen hangt nur von Ihren Bemühungen ab.
Sie Sollen – die Zahlungen der Sendung zwischen unseren Kunden, die Ihr Interesse von jeder Operation bekommen, machen. Hauptsachlich werden es 5 %, mit jeder Sendung, die Ihr Interesse züchten wird. Unsere Kunden bekommen 1000 EURO zu 20000.
www.lifeprofit.com
LifeProfit Inc. sorgt sich um Ihr Blühen. Machen Sie Ihr Leben besser zusammen mit der LifeProfit Inc.!
Splash screen
Heute möchte ich die Programmierung eines Splash-screens unter WIN32 näher beleuchten.
Kennt sicher jeder: Die schönen Grafiken, die während des Ladeprozesses eines Programms am Schirm erscheinen, z.B. beim Starten von Visual Studio.
Im Prinzip handelt es sich hierbei einfach um ein TOPMOST – Fenster, welches eine Grafik beinhaltet, auf der idealerweise auch dynamisch die Versionsinformation über das Programm angezeigt wird. Die Grafik wird beim Starten entweder nach dem Ladevorgang oder nach einer festgelegten Zeitspanne (z.B. 2 Sekunden) ausgeblendet.
Wie geht man sowas nun an?
Grundsätzlich muss man die WM_PAINT
Nachricht eines neuen, leeren Fensters dispatchen. Dieses Fenster wird in der Größe nun an die Größe des zu ladenden Splash-screen Bitmaps angepasst (im unteren Beispiel befindet sich das in der Ressourcen als IDB_SPLASH
) und das Fenster anschließend zentriert.
Nun kopiert man das Bitmap in den DC des Fensters.
So weit, so gut! Nun wäre es aber noch interessant die Versionsinformationen auszugeben.
Hierzu kann man ja praktischerweise gleich meine QueryResource – Klasse verwenden.
Zuerst muss nun der Font und die Schriftgröße, sowie die Schriftfarbe bestimmt werden.
Anschließend wird der Text an die angegebene Position innerhalb des Bitmaps gezeichnet.
Das war’s im Prinzip mit dem Zeichnen.
Nun sollte man noch dafür sorgen, dass der Splashscreen bei entsprechenden Aktionen
verschwindet, z.B. beim Klicken oder nach Ablauf einer bestimmten Zeit.
Um den Splashscreen nach einer bestimmten Zeitspanne verschwinden zu lassen, installiert man am Besten einen Timer in der Initialisierungsroutine des Fensters (WM_CREATE
) mittels der SetTimer
Funktion.
Idealerweise lassen wir den Aufrufer der Dialoprozedur selbst das Timeout angeben. Der an die Dialogbox übergebene Wert befindet sich bei einem Standard-Fenster innerhalb der in lParam übergebenen Struktur CREATESTRUCT
und zwar im Member lpCreateParams
.
Dieser Parameter wird als letzter Parameter beim Erstellen des Fensters der CreateWindowEx
– Funktion übergeben.
Beim Erstellen des Fensters macht es Sinn, den Flag WS_EX_TOPMOST
als Windowstyle anzugeben, damit das Fenster zu oberst erscheint.
Im untenstehenden Codeschnipsel befindet sich nun eine fertige, von mir entwickelte Splash-screen Lösung. Ich habe alle Stellen im Code mit dem Kommentar EDITME
gekennzeichnet, welche entsprechend angepasst gehören, um die Routine für seine eigenen Zwecke weiterverwenden zu können. Außerdem wird hier meine QueryResource – Klasse zum Auslesen der Versionsinfos verwendet, diese wird als ggf. auch benötigt.
Ansonsten: Viel Spaß damit!
Wenn’s Fragen dazu geben sollte, einfach als Kommentar posten 🙂