Где я могу найти стандартные системные иконки для почтовых ящиков через WinApi? - PullRequest
5 голосов
/ 07 сентября 2011

Где я могу найти стандартные системные значки почтовых ящиков через WinApi?Я хочу создать расширенное диалоговое окно (с подробным расширением) в качестве ресурса WinApi, но я хочу использовать системные значки по умолчанию, такие как:

Standard system icons

. Для .NET я знаю, что янайду их в System.Drawing.SystemIcons, но где я могу найти их, используя родной C и WinApi?И как я могу их применить?

Ответы [ 2 ]

10 голосов
/ 07 сентября 2011

Вы должны быть в состоянии получить их, используя LoadIcon.Чтобы получить значок вопросительного знака, используйте LoadIcon(NULL, IDI_QUESTION), другие идентификаторы: IDI_ERROR, IDI_WARNING и IDI_INFORMATION.

2 голосов
/ 07 сентября 2011

Это правильно,

Если кому-то здесь нужен мой код, чтобы установить значок, а также воспроизвести соответствующий звук.

HICON hIcon = NULL;
if(mbdIcon == MBD_ICON_INFORMATION) {
    hIcon = LoadIcon(NULL, IDI_INFORMATION);
    MessageBeep(MB_ICONASTERISK);
} else if(mbdIcon == MBD_ICON_QUESTION) {
    hIcon = LoadIcon(NULL, IDI_QUESTION);
    MessageBeep(MB_ICONQUESTION);
} else if(mbdIcon == MBD_ICON_WARNING) {
    hIcon = LoadIcon(NULL, IDI_WARNING);
    MessageBeep(MB_ICONWARNING);
} else if(mbdIcon == MBD_ICON_ERROR) {
    hIcon = LoadIcon(NULL, IDI_ERROR);
    MessageBeep(MB_ICONERROR);
} else {
    ShowWindow(hPictureIcon, SW_HIDE);
}
if(hIcon != NULL)
{
    Static_SetIcon(hPictureIcon, hIcon);
}

Пусть это спасет кого-то несколько минут.:)

...