sakura-editor / sakura

SAKURA Editor (Japanese text editor for MS Windows)
https://sakura-editor.github.io/
Other
1.23k stars 162 forks source link

管理者権限が必要であることを示す「盾」のアイコンのちゃんとした実装 #732

Open m-tmatma opened 5 years ago

m-tmatma commented 5 years ago

https://github.com/sakura-editor/sakura/issues/607#issuecomment-444153521

@berryzplus

管理者権限が必要であることを示す「盾」のアイコンは、本来別の方法で表示させるものなんですけど、今回はとりあえずの対応なので別アイコンとして実装しています。「盾」アイコンのちゃんとした実装も、いずれはやりたいと思っています。

berryzplus commented 5 years ago

本来のやり方は、ボタンに対してこのメッセージを送ることです。 https://docs.microsoft.com/en-us/windows/desktop/controls/bcm-setshield

「ボタン」に対してBCM_SETSHIELDを送ると、OSが盾アイコンを付けてくれます。

https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/c2c2d025-f20f-44d8-909b-04ca37458f41/uac-shield-in-menus?forum=windowsuidevelopment メニューに対して盾アイコンを付ける方法はなかったはずなので、カスタムドローで盾アイコンのオーバーレイイメージとマージしたビットマップを表示させる形になると思います。

KENCHjp commented 5 years ago

「ボタン」に対してBCM_SETSHIELDを送ると、OSが盾アイコンを付けてくれます。

関係ない話ですが、勉強になります。

beru commented 5 years ago

盾アイコンを取得する方法について調べました。

SHGetStockIconInfo API関数を使って取得出来るようです。

第1引数には、 SIID_SHIELD