WinXP VC++.NET WinAPIです。
任意のウィンドウのハンドルを取得して、その中にあるアイコンを変更したいのですが、どのような関数を使えばよいですか?ハンドル取得までは分かるんですが・・・。
MSDNで調べてみましたか?
WM_SETICON
その中のアイコンというのが定義が不明確な気がします。
ウインドウと言ってもコントロールもウインドウに変わりはないですし。
「その中」とはいったいどういう意味なんでしょう?
すごいあいまいですいません。|(_ _)|
その中とは、親を持つって意味でお願いします。あんま意味なかったです・・・。
自分はFindWindow()をつかって全てのウィンドウを列挙して、アイコンを使っていればそれを変更、
てかたちでしたいのですが、FindWindow()からその情報を取得って可能なんでしょうか?
では「アイコンを使っているウィンドウ」とは何ですか?
タイトルバーを持つウィンドウの左上のアイコンだけなら簡単ですが、あらゆるアイコン——デスクトップもツールバーもメニューもメッセージボックスも——となると、汎用的な方法はありません。
シャノンさんありがとうございます。
やっぱり全部というのは無謀ですね・・・・。
でも特定のアイコンを変更というのは可能ですよね?
その場合ってやはりスタイルを取得でしょうか?でもその後が分かりません。
検索してもわからないし・・・・。
> その場合ってやはりスタイルを取得でしょうか?でもその後が分かりません。
ですから、どのウィンドウに対しても有効な簡単な方法はありません。
具体的に言えば、どのウィンドウに対してもスタイルの変更で対応できるとは限らない、ということです。
対象のウィンドウは何ですか?
トップレベルウィンドウですか? ボタンですか? スタティックテキストですか? リストビューですか? メニューですか? ツールバーですか?
全てのウィンドウで方法がバラバラだとは言いませんが、まずは何のアイコンを変更したいのかがわからないと、ヒントも出しようがありません。
内容が漠然すぎました。すみません……。
とりあえず、全部一気にということは無理ってことですね。
自分が考えていたのに近いのは、トップレベルウィンドウで使われているアイコンを変更です。
それで、できたらその子ウィンドウも調べて、さらにその使われているメニューも調べて・・・・とおもったんですが、
指摘されてるとおり無理っぽいです。
聞きたいんですが、トップレベルウィンドウのばあい、どのようにアイコンについて取得するんですか?
とりあえず,WM_GETICON
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowmessages/wm_geticon.asp
を使えば取得できます。
ただし,ウィンドウを全て自分で描画している場合は,取得できないかもしれません。
ありがとうございます
まだやってはいませんがなんとかできそうです!
ありがとうございました。
解決忘れてました・・・・・。
ツイート | ![]() |