スモールアイコンについて – プログラミング – Home

スモールアイコンについて
 
通知
すべてクリア

[解決済] スモールアイコンについて


sunyopu
 sunyopu
(@sunyopu)
ゲスト
結合: 23年前
投稿: 68
Topic starter  

スモールアイコンをリソースエディタで作成し、プログラム中で
それをロードしたいのですが、うまくいきません。

標準サイズのアイコンは、以下で簡単にロードできるのですが...

HICON LoadIcon(Appインスタンスハンドル, リソースID);

MSDNでは、ExtraIconEx()で、スモールアイコンが取得できるような
ことが書いてあるのですが、当関数だと、アイコンの入っている
ファイル名(*.exe *.dll *.ico)と、ファイル内でのアイコンインデックスを
キーとして指定します。

しかし、これだとアイコンを追加、削除したときの管理が頻雑になりそうなので、
リソースIDをキーにして、スモールアイコンをロードする方法はないでしょうか?


引用未解決
トピックタグ
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

LoadImageを使うとサイズを指定して読み込むことが出来ます。


返信引用
sunyopu
 sunyopu
(@sunyopu)
ゲスト
結合: 23年前
投稿: 68
Topic starter  

サイズが指定できる LoadImage() や DrawIconEx() を使って
アイコンを描画してみたりもしたのですが、それは、
あくまでも標準サイズのものをスモールサイズに縮小するだけみたいです。

自分のプログラムでは、スモールサイズのみ使用したいので、
リソースには、スモールアイコンしか登録してません。
(標準の方は、ピクセルが多く作るのが大変なので、中身がからっぽのまま)

そのため、スモールアイコンのみをロードできないか質問してみたわけです。


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

そのアイコンから、32x32のデバイスを削除してみては?


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

LoadImage()でスモールアイコンをロードすることはできます。

LR_SHAREDフラグを付けると先に大きいアイコンを読み込んでいた場合、
それを縮小したものが返されてしまいますが、付けてませんか?


返信引用
sunyopu
 sunyopu
(@sunyopu)
ゲスト
結合: 23年前
投稿: 68
Topic starter  

リソースの32x32デバイス削除って、どうすればできるのでしょうか?

私も、最初は16×16しか使用しないので、削除しようとしたのですが
できませんでした。

アイコンリソースは、新規追加した時点で、すでに32x32デバイスが存在
しており、後からデバイスの追加で16×16を追加しました。

ちなみに、現在は、アイコン風のビットマップリソースを作成し、
それをアイコンに見立てて使用しています。


返信引用
sunyopu
 sunyopu
(@sunyopu)
ゲスト
結合: 23年前
投稿: 68
Topic starter  

あと、LoadImage() で、LR_SHARED は使用していません。


返信引用
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

> リソースの32x32デバイス削除って、どうすればできるのでしょうか?
> 私も、最初は16×16しか使用しないので、削除しようとしたのですが
> できませんでした。

メニューの「イメージ」-「デバイスイメージの削除」で出来ませんか?

LoadImageのほうですが、
私のところでは以下のようなコードでうまくいっています。
HICON hicon = (HICON)::LoadImage(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);


返信引用
sunyopu
 sunyopu
(@sunyopu)
ゲスト
結合: 23年前
投稿: 68
Topic starter  

> メニューの「イメージ」-「デバイスイメージの削除」で出来ませんか?

この方法で、32×32デバイスを削除することにより、
スモールアイコンをロードすることができました。

今回は、プログラミング技法というより、リソースエディタの使い方が
問題でした。

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました