none
タイトルバーのアイコン RRS feed

  • 質問

  • お世話になります。

    Windows7(64bit)+VC++2010を使用して、MFCベースのアプリケーションを構築しています。

    なにか原因があるとは思うのですが、タイトルバーのアイコンが、
    16*16を使用せず、96*96のサイズを使用して、アイコンがつぶれて表示されてしまいます。

    この不具合をみつけるまでは、16*16が使用されていました。

    いろいろ調査している中で分かったことがあり、モジュール自体を別のフォルダーまたは、フォルダ名を変更することで16*16を使用してくれることが分かりました。
    アイコンがキャッシュがされているような感じがします。タイトルバーのアイコンをキャッシュするのかなという疑問はありますが。

    キャッシュを疑い次の方法でも試してみましたがダメでした。
    C:/ユーザー/ユーザー名/AppData/Local/IconCache.dbを削除してもダメでした。
    画面の解像度から色を32bitから16bitに変更して、再起動後32bitにしてみましたがダメでした。

    なにかほかに調査するべき内容などありましたら教えてください。

    2015年3月11日 6:19

すべての返信

  • メインアプリケーションクラスで、

    SetRegistryKey(「アプリケーションの名前」);

    で登録しているレジストリを削除してから、障害の発生するEXEを起動し直してみる。
    などは、やってみましたでしょうか。

    2015年3月11日 6:58
  • ご返事ありがとうございます。

    次の内容を、実行していました。でもだめでした。

    ・SetRegistryKey(「アプリケーションの名前」);対象のレジストリキーの削除
    ・C:/ユーザー/ユーザー名/AppData/Local/IconCache.dbを削除
    ・画面の解像度から色を32bitから16bitに変更して、再起動後32bit


    下記は、現在使用しているアイコンリストです。上記の操作を行って再起動後、
    16bit-colorのままで実行すると、「4bit(32*32)」が使用されました。
    32bit-colorのときは、96*96と決めつけていましたが、
    32bitの(256,256)(128,128)(96*96)(64*64)のいずれかが使用されているようです(ほぼ同じ絵柄で識別できない)。

    ・アイコンリスト

    32bit(256*256)
    32bit(128*128)
    32bit(96*96)
    32bit(96*96)
    32bit(64*64)
    4bit(32*32)
    16*16(32*32)


    次に試したのが上記すべてのサイズを識別できるようにそれぞれ単色に塗潰したものを作成しました。
    (すべてのサイズは1bit-color)
    しかし、使用されるのが、(32*32)のサイズでした。

    16*16を使用してくれません。
    但し、エクスプローラ上の一覧表示で使用されるファイルのアイコンは、16*16が使用されています。

    なにかほかに試す方法があれば教えてください






    2015年3月11日 9:28