我在哪里可以通过WinApi找到消息框的标准系统图标?

时间:2011-09-07 10:40:27

标签: c winapi dialog icons messagebox

我在哪里可以通过WinApi找到消息框的标准系统图标?我想创建一个高级对话框(带有详细信息扩展名)作为WinApi资源,但我想使用系统默认图标,如:

Standard system icons

对于.NET我知道我会在System.Drawing.SystemIcons中找到它们,但是在哪里可以找到它们使用本机C和WinApi?我怎么能应用它们?

2 个答案:

答案 0 :(得分:10)

您应该能够使用LoadIcon获取它们。要使用LoadIcon(NULL, IDI_QUESTION)获取问号图标,其他标识符为IDI_ERRORIDI_WARNINGIDI_INFORMATION

答案 1 :(得分:2)

多数民众赞成正确,

如果有人需要我的代码来设置图标并播放相应的声音。

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);
}

愿它节省一些时间。 :)