CrystalDiskMark2007Alpha4
StyleSheet の切り替え機能にほんのり対応しました。ソースコードには言い訳が書いてありますが、まだ完全ではありません。実は不具合がありまして、十数回テーマを切り換えるとその後、切り替わらないのです。というのも、今の実装はテーマを設定するたびに StyleSheet を追加しているのですが、どうも最大 StyleSheet 数に制限があるようなのです。というか、本当はこんな方法では駄目で、StyleSheet を追加するのではなく、切り換えるようにしなければならないのですが、今のところ方法がわかりません。例によって、JavaScript で切り換えるのは簡単なのですが。
C++ 側からがんばるのは資料も少なくなかなか大変です。まぁ、この問題はそのうち改善できると思うので、とりあえずは、技術デモということで興味のある方はお楽しみください。(ってそんな人いるのか?)
実行ファイル:CrystalDiskMark2007Alpha4.zip
ソースコード:CrystalDiskMark2007Alpha4Src.zip
今は、ハードコーディングされた 2 つのテーマしか利用できませんが、そのうち Theme ディレクトリを探索してメニューに追加するように改良予定です。これで、ユーザー様が好きな様にデザインしたダイアログでベンチマークが満喫できるようになります。
背景画像&メータ画像は Art-Flash 加工自由な壁紙と素材 さんの素材を使用させていただきました。
【2007/2/18追記】
- habeさんに指摘されたスペリングミスを修正しました。
こんばんは。あべです。
まずtypoから。「そのうち*Thema*ディレクトリを…」はマテガイですよね?
それとですね。ぽけーとMSDNながめただけなんですけどCDHtmlDialogにはGetDHtmlDocument()とかGetElement()だのいけてるメソッドがあるみたいです。こいつら。MSHTMLオブジェクトかな?
もしそうだとするとScriptかDocumentオブジェクトへinvokeうがうがするとJScriptなりVBScriptなりできたような。すくなくとも.NETのWebBrowserコントロールではできたはず。
…とおもって”how to invoke javascript using MSHTML”でぐぐったらこんなのがみつかりました。
> http://starkravingfinkle.org/blog/2004/12/mshtml-hosting-calling-javascript-from-host/
とゆーわけで。CDHtmlDialog.GetDocument()と↑をくっつけてJScriptよんでみてください。がんばれ。
habe さん、コメントありがとうございます。
Theme ですね(汗 スペリングミスっす。
ふむふむ、Host 側からスクリプト呼べれば、苦労してアレコレ DOMDOM しなくても、全部スクリプトにお任せ♪という幸せな状況が実現できるわけですね。
GetDHtmlDocument() とか GetElement() ようやく少しわかってきました。でも、ベースとなる COM 自体の理解度が低いので・・・。急がば回れで COM のお勉強も引き続き行う予定です。