manifest抜きでVB6-XPスタイルアプリケーションを (1)
その前に、XPアイコンはどぅなったのか?を。
とりあえず、まずは会社にあるPhotoshopで使い方を覚えてみることに。なんせ無用に重たいソフトなので、今まで使ったことがなかったんです(てゅうか使う気がしなかったんです)。
GMGがシャドウレイヤーをどぅ受けとめるのか。それは他のグラフィックソフトでも提供可能なのか。とまぁそのへんから調べてみよぅといぅことでひとつ。
次回このテーマでお話ができるのはいつになるんでしょうか(T-T)。
さて、以外と評判が悪ぃぞmanifestファイル。と言ってる私にしてもなんだかいまいちなぁな感じがしてますし。
もっとも今までだって。たとえばプログラムファイルのショートカットファイルをエクスプローラからのドラッグ&ドロップで作成する際に、そのプログラムファイルのアイコンが自動的に反映されるのはなぜなのかといぅと。プログラムファイルのアイコンリソースの一番最初のデータをプログラムそのものとは無関係に読み出して表示しているわけですね。これ、Windowsの起動とかデスクトップの再描画のつど読み出しているんです(アイコンキャッシュの存在は別として)。
manifestだって同じこと。プログラムを起動する際に、まずはそのプログラムファイルの中のmanifestリソースがあるかどぅかを確認し、あれば一番最初のデータの記述に基づいて。なければさらに同フォルダに(プログラムファイル名).manifestといぅファイルがあるかどぅかを確認し、あればそのファイルの記述に基づいて。どちらのComCtl32.dllを使用するかを判断した上で当のプログラムの実行を開始させる、といぅ手順で動作するんです。
つまり、プログラムがその動作や表示をすべて決定するわけではなく、ある時はプログラムファイルとして、またある時はデータファイルとしてWindowsにいいよぅに使われているわけです。Win95の最初から。
それが今になってアイコンの表示はOSに任せてもいいけどTextBoxの表示はプログラムコードから制御できなきゃやだって何様だ > 私σ^^;)。
まぁそれがスジだとしても、やなもんはやですので、心のおもむくままになんとかしてみよぅかな、と。
で。VB6はデスクトップテーマに対応できるか(決定版)でもちょろりと述べましたが、ComCtl32.dll Ver6のタイプライブラリを作った御仁がいらっしゃる。こいつをなんとかしたらなんとかなるんではないかしら。それにしても私は妙にタイプライブラリにまつわるあたりでちょろちょろしているよぅな気がするのは気のせいかしら。
で、件のページからサンプルプログラムをダウンロード→展開→実行。おぉ。ただのPictureBoxがXPデスクトップテーマに対応したWindowに早変わりだ。しかもmanifestでは未対応のプログレスバーまでかっきり対応しているぞ。イケるかも。