Чтобы получить значок щита на кнопках диалогового окна с сообщением системы, вам потребуется обработать обратный вызов из этого диалога.
Например, я проиллюстрирую это с помощью TaskDialogIndirect()
API, представленный в Vista.
Основной диалог позволяет указать основной значок, но не значок щита для кнопок в диалоговом окне.Для этого вам необходимо предоставить функцию обратного вызова , которая отвечает на уведомление TDN_CREATED
.
Этот обратный вызов может выглядеть следующим образом:
HRESULT CALLBACK TaskDialogCallbackProc(
HWND hwnd,
UINT uNotification,
WPARAM wParam,
LPARAM lParam,
LONG_PTR dwRefData
)
{
if (TDN_CREATED == uNotification)
{
SendMessage(
hwnd,
TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE,
ID_FOR_MY_BUTTON_SPECIFIED_IN_TASKDIALOGCONFIG_STRUCT,
1
);
}
return S_OK;
}
Магиясодержится в сообщении TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE
.
Насколько я могу судить, именно таким образом вы намерены достичь желаемого эффекта.