
Windows Vista上で操作に管理者権限が必要なことがユーザーにひと目でわかるようにアイコンをボタンに表示する。
方法は非常に簡単で、BCM_SETSHIELDメッセージをボタンに対して送るだけでいい。その際にLPARAM=TRUEにするとアイコン表示、FALSEにするとアイコン消去となる。
この実装用にButton_SetElevationRequiredStateというマクロが定義されているのでこれを利用してもいい。
ここではWTLアプリケーションウィザードでダイアログベースのプロジェクトを作成し、その「OK」ボタンに対してアイコンを表示した。
//Windows Vista管理者アイコンをボタンに設定する //以下の3行はどれも同じ動作をする Button_SetElevationRequiredState(GetDlgItem(IDOK), TRUE); //::SendMessage(GetDlgItem(IDOK),BCM_SETSHIELD,NULL,(LPARAM)TRUE); //::SendMessage(GetDlgItem(IDOK),(BCM_FIRST + 0x000C),NULL,(LPARAM)TRUE);
