コモンコントロール上での 32bit色アイコNo.08782
Gertrud さん 04/12/18 22:15
 
Gertrudです。

前回はアイコンモジュール系の要望で大変お世話になりました。新しい開発キッ
トをお待ちしております。


さて、今回もアイコンモジュール系の話ですみません。

本体ウィンドウのフォルダ一覧・添付ファイルの欄・アドレス帳の両方のペイン
など、「コモンコントロール」系を使用した箇所がありますが、そこに 32bit色
のアイコン(実際は多色アイコン混在)を指定すると、透過部分が黒くなってし
まいます。

ちなみにメール一覧など「リストボックス」を使用した箇所では正しく表示され
ています。


WEBで調べたところ、

   1. ImageList_Create() で ILC_COLOR32|ILC_MASK を指定する
   2. ImageList_SetBkColor() で適切な背景色を指定しておく

をしないと、WindowsXPでコモンコントロールにて正常に 32bit色アイコンが表
示されないようです。(詳しいことは分かりません。おせっかいでしたらすみま
せん。)


他OSでも正しく表示できるか確認作業が大変かとは思いますが、対応していただ
くようお願いいたします。

[ ]
RE:08782 コモンコントロール上での 32bitNo.08783
秀まるお さん 04/12/18 23:07
 
 これはこれは情報ありがとうございます。Windows98でフルカラーのビットマ
ップがツールバー上で使えない(obicon = obiさんのアイコン?)が使えない原因
を調べようと思いつつほったらかしだったので、これはこれは大変ありがたい情
報です。

 ImageList_Createの所ですが、現状ではILC_COLORDDB | ILC_MASKというフラ
グ指定しかしてませんでした。アイコンモジュール中のビットマップがフルカ
ラーならここをフルカラー指定するように修正してみます。

[ ]
RE:08783 コモンコントロール上での 32bitNo.08784
Gertrud さん 04/12/19 02:17
 
Gertrudです。

さっそくのお返事、ありがとうございます。

>Windows98でフルカラーのビットマ
>ップがツールバー上で使えない(obicon = obiさんのアイコン?)が使えない原因
>を調べようと思いつつほったらかしだったので、これはこれは大変ありがたい情
>報です。

ツールバーもコモンコントロールだったって事に逆に気付かされてしまいました。
Treeviewや Listviewにしか目がいっていませんでした。

フルカラーのツールバーの件は、私も解決できたら大変うれしいところではあり
ます。



秀丸の掲示板でも「ツールバーの選択不可項目のグレー表示」が話題に挙がって
いましたが、アイコンモジュールでグレーイメージやホットイメージが指定でき
たら、もっとスマート(?)になるのになぁとも感じています。

まぁ既存のアイコンモジュールの絡みもあり、大変ですよね。


余談、失礼いたしました。

[ ]
RE:08784 コモンコントロール上での 32bitNo.08789
秀まるお さん 04/12/20 10:21
 
 今直そうかと思ったんですけど、そもそも鶴亀メールのツールバーでは、自前
でImageListを作成してる訳じゃなくて、ビットマップのハンドルをそのまま
ツールバーコントロールに渡してるだけでした。自前でImageListを作って渡す
となると、修正量が少々大きくなります。

 迷惑メールフィルターで死んでしまうバグが出てるので、とりあえずこの修正
は後回ししてV4.01を先にアップロードさせていただきます。

 あと、秀丸担当に聞いた所、32bitの(24bitフルカラー+8bit透明度指定の)
ビットマップは、どっちにしてもWindowsXP上でしか使えないんだそうです。な
ので、アイコンモジュール作者さんが32bitでビットマップを作成された場合、
それはWindowsXP専用として公開してもらうしか無いそうです。
 (っていう話は既にご承知かもしれないけど)

[ ]
RE:08789 コモンコントロール上での 32bitNo.08793
Gertrud さん 04/12/20 17:03
 
Gertrudです。

>自前でImageListを作って渡す
>となると、修正量が少々大きくなります。

私は、ツールバーについてはよく分かっていません。ImageList渡しすると何が
変わるのかも知らないのです。。。すみません。

Treeviewと Listviewの表示がうまくいけば、WindowsXPの32bit色環境でよりき
れいにアイコンが表示されるのにな、と思っただけでして。


> あと、秀丸担当に聞いた所、32bitの(24bitフルカラー+8bit透明度指定の)
>ビットマップは、どっちにしてもWindowsXP上でしか使えないんだそうです。な
>ので、アイコンモジュール作者さんが32bitでビットマップを作成された場合、
>それはWindowsXP専用として公開してもらうしか無いそうです。
> (っていう話は既にご承知かもしれないけど)

いえいえ、存じておりませんでした。逆にツールバーコントロールで 32bit色の
ビットマップが使用できる(WindowsXP環境で)ことに驚いてしまいました。ア
ルファチャンネル透過は PNGファイルという思い込みがあったもので。。。これ
はとてもありがたい情報でした。

作成できるツールも限られてしまうのですが、指定した場合、現状の鶴亀メール
でも、ツールバーにてきれいにアルファチャンネルが効くことを確認いたしまし
た。また、グレーイメージを指定していない(出来ない)のにもかかわらず、選
択不可状態のとき Windowsが勝手にきれいなグレーイメージを表示してくれるこ
とも発見してしまいました。


なにか、話がまた横道にそれた感もありますが、表示環境が限られるとはいえ、
とても有用な情報をいただき、ありがとうございます。いろいろと勉強になりま
す。

[ ]
RE:08793 コモンコントロール上での 32bitNo.08794
秀まるお さん 04/12/20 17:21
 
 またまた1つ勘違いしてました。今回の話はツールバーじゃなくて、ツリービ
ューやリストビューというか、つまり、フォルダ枠やメール一覧枠上のアイコン
の話な訳ですね。

 それはそれで、ツールバーよりは簡単に対応できたのですが、V4.01には間に
合いませんでした。

 今しばらく鶴亀メールでこれといったバグが出なければ対応しますので少々お
待ちください。他にもいくつか細かい懸案事項があるので、まとめて対応したい
と思います。

[ ]
RE:08794 コモンコントロール上での 32bitNo.08795
Gertrud さん 04/12/20 18:37
 
Gertrudです。たびたびすみません。


> またまた1つ勘違いしてました。今回の話はツールバーじゃなくて、ツリービ
>ューやリストビューというか、つまり、フォルダ枠やメール一覧枠上のアイコン
>の話な訳ですね。

そうです、そうです。なぜ、秀まるお様がツールバーのお話ばかりされるのかと、
感じておりました。(~_~)  同じコモンコントロールだから関連があるのかなと、
自分自身を納得させておりました。。。 メールで真意をお伝えするのも難しい
ものですね。

なお、しつこく聞こえるかもしれませんが、「メール一覧枠」上のアイコンは正
しく表示されています。擬似Listview(Listbox)だから自前で描画されている
のかと思いますが。


> 今しばらく鶴亀メールでこれといったバグが出なければ対応しますので少々お
>待ちください。他にもいくつか細かい懸案事項があるので、まとめて対応したい
>と思います。

はい、全く急いだ話ではないですし、ゆっくりとお待ちすることにします。見た
目よりも不具合対応等が優先するのは正論だと思います。

このようなアイコン周りの要望をするの、私ぐらいみたいですし。。。

[ ]
RE:08784 コモンコントロール上での 32bitNo.08797
obi さん 04/12/20 20:18
 
こんばんは。
obiです。

先日、私の作成しましたアイコンモジュール(ツールバー部)がWindows2000の環境で色
化けするとの事でユーザー様より連絡がありました。
現在ツールバーの方は8bitカラーに減色してリリースしていたのですが、そのユー
ザー様
には更に半分の色数(128色)に減色したアイコンを試しに使用してみて頂きました。そ
うしましたところ、色化けは解消されたようです(私のWindows2000のPCでは再現出来ま
せんでしたが)。

当方、開発の知識が無いため、この程度の報告しか出来ませんが何かの参考になれば
と。

とりあえず現在のところ、256色版と128色版の2種類のアイコンモジュールを書庫に
含め
た形でアップロードさせて頂いてます。

[ ]
RE:08795 コモンコントロール上での 32bitNo.08798
秀まるお さん 04/12/20 21:20
 
 いろいろ情報ありがとうございます。

> なお、しつこく聞こえるかもしれませんが、「メール一覧枠」上のアイコンは正
> しく表示されています。擬似Listview(Listbox)だから自前で描画されている
> のかと思いますが。

 あそこはたしかに完全自前で描画してますが、ImageListを使って処理してる
には変わりないようです。

 とにかくいろいろ教えて頂いた情報と秀丸ソースコードなども流用してゆっく
りテストしながら対応したいと思います。

[ ]
RE:08797 コモンコントロール上での 32bitNo.08800
秀まるお さん 04/12/21 11:19
 
 うちの会社でも、標準のアイコン/ツールバービットマップを全部256色に
した物を現在開発中なので、人ごとではありませんで…。

 とりあえずはうちの会社では256色でアイコン/ビットマップを作りつつ、
何かユーザー様の方で問題があった時には今回の情報を参考にさせていただきま
す。

[ ]
RE:08797 コモンコントロール上での 32bitNo.08808
Gertrud さん 04/12/21 18:04
 
Gertrudです。


>現在ツールバーの方は8bitカラーに減色してリリースしていたのですが、そのユー
>ザー様
>には更に半分の色数(128色)に減色したアイコンを試しに使用してみて頂きました
>。そ
>うしましたところ、色化けは解消されたようです(私のWindows2000のPCでは再現出
>来ま
>せんでしたが)。

私も、ツールバーについては 256色に減色して現在リリースしています。128色
への減色につきましては別途その都度考えていきたいと思います。

減色はその後の調整がすごく大変で、やりたくないのが本音ではありますが。。。
使ってくださる方を思うと、そうも言っていられませんよね。


情報を下さいましてありがとうございます。

[ ]
RE:08808 コモンコントロール上での 32bitNo.08809
秀まるお さん 04/12/21 21:03
 
 ツールバーですけど、自前でImageListを作成してそのハンドルをツールバー
コントロールに渡すという作戦がありまして、それを使えば色関係の変な症状は
直る可能性が高いと思います。で、その処理を今作ってる最中です。

 秀丸の方では、アイコンモジュールに入っているビットマップを一度
ImageListに入れて、そこから自前のビットマップに描画(ImageList_Draw)し
て、そうやって作成したビットマップをツールバーコントロールに渡すというや
やこしいことをしているようでして、なぜそういうことをしてるのかと秀丸担当
に聞いたら、過去にいろいろバグなどがあって結果的にこうなってるみたいな話
でした。

 なので、とにかくこちらでいろいろ直してみますので、しばらくお待ちくださ
い。

-------------------

 フォルダ枠上での32bit半透明アイコンについてはちゃんと出るようになりま
した。

[ ]
RE:08809 コモンコントロール上での 32bitNo.08810
Gertrud さん 04/12/22 17:20
 
Gertrudです。


> ツールバーですけど、自前でImageListを作成してそのハンドルをツールバー
>コントロールに渡すという作戦がありまして、それを使えば色関係の変な症状は
>直る可能性が高いと思います。

そうですね。私も WEBや MSDNで情報を調べたところ、TB_ADDBITMAPメッセージ
やCreateToolbarEx関数は古い(?)やり方のように見えました。ImageListを使
用するほうが、ツールバーの背景色等の問題がなさそうですね。(たぶん)


> なので、とにかくこちらでいろいろ直してみますので、しばらくお待ちくださ
>い。

Treeviewと Listviewのお願いをしたつもりが、計らずともツールバーの対応ま
でやってくださることとなり、うれしい限りです。全く急いだ話ではありません
ので、ごゆっくりと作業してくださいませ。



# MFCや VCL(Borland)を使わない開発って、ほんと大変なんですね。今回、
  いろいろ検索してみて身にしみました。。。

[ ]