任意ウィンドウのアイコンを変更

解決


origi  2005-07-11 05:35:48  No: 58237

WinXP VC++.NET WinAPIです。
任意のウィンドウのハンドルを取得して、その中にあるアイコンを変更したいのですが、どのような関数を使えばよいですか?ハンドル取得までは分かるんですが・・・。


RAPT  2005-07-11 09:04:59  No: 58238

MSDNで調べてみましたか?
WM_SETICON


PATIO  2005-07-12 02:59:01  No: 58239

その中のアイコンというのが定義が不明確な気がします。
ウインドウと言ってもコントロールもウインドウに変わりはないですし。
「その中」とはいったいどういう意味なんでしょう?


origi  2005-07-12 03:07:44  No: 58240

すごいあいまいですいません。|(_ _)|
その中とは、親を持つって意味でお願いします。あんま意味なかったです・・・。

自分はFindWindow()をつかって全てのウィンドウを列挙して、アイコンを使っていればそれを変更、
てかたちでしたいのですが、FindWindow()からその情報を取得って可能なんでしょうか?


シャノン  2005-07-12 07:55:44  No: 58241

では「アイコンを使っているウィンドウ」とは何ですか?
タイトルバーを持つウィンドウの左上のアイコンだけなら簡単ですが、あらゆるアイコン——デスクトップもツールバーもメニューもメッセージボックスも——となると、汎用的な方法はありません。


origi  2005-07-13 06:04:47  No: 58242

シャノンさんありがとうございます。
やっぱり全部というのは無謀ですね・・・・。
でも特定のアイコンを変更というのは可能ですよね?
その場合ってやはりスタイルを取得でしょうか?でもその後が分かりません。
検索してもわからないし・・・・。


シャノン  2005-07-13 19:39:44  No: 58243

> その場合ってやはりスタイルを取得でしょうか?でもその後が分かりません。

ですから、どのウィンドウに対しても有効な簡単な方法はありません。
具体的に言えば、どのウィンドウに対してもスタイルの変更で対応できるとは限らない、ということです。
対象のウィンドウは何ですか?
トップレベルウィンドウですか?  ボタンですか?  スタティックテキストですか?  リストビューですか?  メニューですか?  ツールバーですか?
全てのウィンドウで方法がバラバラだとは言いませんが、まずは何のアイコンを変更したいのかがわからないと、ヒントも出しようがありません。


origi  2005-07-21 08:13:28  No: 58244

内容が漠然すぎました。すみません……。
とりあえず、全部一気にということは無理ってことですね。
自分が考えていたのに近いのは、トップレベルウィンドウで使われているアイコンを変更です。
それで、できたらその子ウィンドウも調べて、さらにその使われているメニューも調べて・・・・とおもったんですが、
指摘されてるとおり無理っぽいです。

聞きたいんですが、トップレベルウィンドウのばあい、どのようにアイコンについて取得するんですか?


YuO  2005-07-21 20:22:25  No: 58245

とりあえず,WM_GETICON
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowmessages/wm_geticon.asp
を使えば取得できます。

ただし,ウィンドウを全て自分で描画している場合は,取得できないかもしれません。


origi  2005-07-31 10:36:33  No: 58246

ありがとうございます 
まだやってはいませんがなんとかできそうです!
ありがとうございました。


origi  2005-08-09 03:39:22  No: 58247

解決忘れてました・・・・・。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加