在WinApi中,我该在哪里找到标准的消息框系统图标?

6
我应该在WinApi中哪里找到标准的消息框系统图标呢?我想要创建一个高级对话框(带有详细扩展)作为WinApi资源,但我想使用系统默认的图标,如下所示:

Standard system icons

对于.NET,我知道可以在System.Drawing.SystemIcons中找到它们,但是在本地C和WinApi中我该在哪里找到它们呢?我该如何应用它们?

2个回答

10

您可以使用LoadIcon来获取它们。要获取问号图标,请使用LoadIcon(NULL, IDI_QUESTION),其他可用标识符包括 IDI_ERRORIDI_WARNINGIDI_INFORMATION


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

希望这可以节省一些人的时间。:)


1
我认为这可能会改变对这个问题和答案的理解。最好它是一个独立的答案。 - Christoph Meißner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接